代码之家  ›  专栏  ›  技术社区  ›  Serge Wautier

编辑(日期):如何显示空文本框?

  •  6
  • Serge Wautier  · 技术社区  · 14 年前
    <%: Html.EditorFor(model => model.date)%>
    

    如何使此代码在加载时显示空文本框?model.date不可为空,因此始终显示一个非空值。如何强制它以空值开头?

    注意:我不想使它可以为空,因为在实际代码中,它绑定到一个必须具有值的模型属性(btw,我有一个 Required 该属性的数据注释)。使它可以为空是没有意义的。将其替换为默认日期(如今天)也不是一个选项,因为本例中的要点是确保用户不会忘记 积极地 指定日期。

    短暂性脑缺血发作

    5 回复  |  直到 7 年前
        1
  •  8
  •   Serge Wautier    14 年前

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime>" %>
    <%=Html.TextBox("", (Model != DateTime.MinValue ? Model : string.Empty)) %>
    

    http://geekswithblogs.net/michelotti/archive/2010/02/05/mvc-2-editor-template-with-datetime.aspx

        2
  •  2
  •   Jorge Goncalves    9 年前
    1. [Required]
      DateTime? CustomDate {
         get { return date==default(DateTime)?null:date; }
         set { date = value; }
      }
      
    2. <%:Html.EditorFor(model => model.CustomDate)%>
      
        3
  •  0
  •   JonVD    14 年前

    <td> <div>

    <script type="text/javascript">
    $(document).ready(function(){
    $("#clearme").html("");
    });
    </script>
    
    <div id="clearme">
    <%: Html.EditorFor(model => model.date)%>
    </div>
    

    Here

        4
  •  0
  •   toddmo    7 年前

    public DateTime DOB { get; set; } 
    [Required]
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
    [DataType(DataType.Date)]
    public DateTime? NullableDOB
    {
      get => DOB.ToNullable();
      set => DOB = value.DefaultIfNull(); 
    }
    

    ToNullible() DefaultIfNull() IsNull()

    public static T? ToNullable<T>(this T source) where T : struct
      => source.IsNull(default(T)) ? (T?)null : source;
    
    public static T? ToNullable<T>(this T source, T @default) where T : struct
      => source.IsNull(@default) ? (T?)null : source;
    
    public static T DefaultIfNull<T>(this T? source, T @default) where T : struct
      => source ?? @default;
    
    public static T DefaultIfNull<T>(this T? source) where T : struct
      => DefaultIfNull(source, default(T));
    
    
    public static bool IsNull<T>(this T source) where T : struct
      => source.Equals(default(T));
    
        5
  •  -1
  •   Gelásio    10 年前

            @if(Model.HolidayDate <= DateTime.MinValue)
            {
                @Html.TextBoxFor(model => model.HolidayDate, new { @class = "datepick", @style = "width: 75px;", @id="dataInput"})
            }
            else
            {
                @Html.TextBoxFor(model => model.HolidayDate, new { @class = "datepick", @style = "width: 75px;"})
            }