【问题标题】:How to set value into HTML5 date field from Asp.Net MVC Razor?如何从 Asp.Net MVC Razor 将值设置为 HTML5 日期字段?
【发布时间】:2014-08-29 04:42:35
【问题描述】:

我发现了一个类似的问题here,但这不适用于我的情况。请看下面的屏幕截图。当我在编辑表单中呈现数据时,除了突出显示的日期字段之外,所有数据都已正确设置为控件。当我检查该元素时,我发现该值在那里,但由于某种原因它没有显示在该字段中。

这是我用来在此日期字段中设置值的代码。我尝试了 "yyyy-MM-dd""MM/dd/yyyy" 格式,但都没有成功。

<td>Joining Date</td>
<td>
@{
   if(Model.JoiningDate != null)
   {
      <input id="txtJoiningDate" type="date" style="width: 100%;" value="@String.Format("{0:MM/dd/yyyy}",Model.JoiningDate.Value)" />
   }
   else
   {
      <input id="txtJoiningDate" type="date" style="width: 100%;" />
   }
}
</td>

编辑

【问题讨论】:

    标签: javascript asp.net-mvc html razor


    【解决方案1】:

    为什么你只使用如图所示的 html 助手:-

    @Html.TextBox("txtJoiningDate", Model.JoiningDate.Value ,"{0:yyyy-MM-dd}",new{ @style="width:100%", type="date" })
    

    【讨论】:

    • 我也试过用'V'替换'v',但结果是一样的:(
    • 如果我选择第一个选项,是否可以使用 jquery 获取此控件的值(因为用户可以更改该值)?如果是,那我该怎么做?截至目前,我正在使用 jquery 获得这个值,即 $("#txtJoiningDate").val() ;正在为此控件使用 id
    • @V.P.Verma ...如果您在控制台中看到..第一个答案生成的 html 将与您在问题中给出的相同..不用担心..
    • MM/dd/yyyy 格式不起作用。它必须是 ISO 格式 yyyy-mm-dd
    • @Exception,是的,我必须将格式从“MM/dd/yyyy”更改为“yyyy-MM-dd”。但是感谢你和“Mrchief”帮助我:D
    【解决方案2】:

    对于 Html5 输入 type="date" 字段,必须以“yyyy-MM-dd”格式指定值。将其设置为该格式后,您将在屏幕上看到分配的值。

    【讨论】:

    • 我将它应用到我的代码隐藏中,这就是我正在寻找的解决方案 :)
    【解决方案3】:

    使用 Html 助手

    @Html.TextBox("txtJoiningDate", Model.JoiningDate.Value ,"{0:MM/dd/yyyy}")
    

    在模型中

     [DataType(DataType.Date)]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
    public Nullable<System.DateTime> JoiningDate{ get; set; }
    

    这对我有用

    【讨论】:

    • 你在哪里提到 input type="date" ?
    【解决方案4】:

    您确定您尝试过 yyyy-MM-dd 格式?看看这个fiddle,在 Chrome 上可以正常工作

    <input id="txtJoiningDate" type="date" style="width: 100%;" value="2010-12-25" /> -> works
    
    <input id="txtJoiningDate" type="date" style="width: 100%;" value="2010/12/25" /> -> will not work
    

    【讨论】:

    • 是的。请查看编辑部分中的第二张图片。即使在 Chrome 中,它也无法正常显示。
    • 我假设您的浏览器版本是相当新的。我能想到的其他事情可能是其他一些插件/JS 正在干扰。演示对您有用吗?
    【解决方案5】:
    @Html.EditorFor(x => x.JoiningDate)
    

    也在你的模型中:

        [DisplayName("Joining date")]
        [DataType(DataType.Date)]
        [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
        public DateTime? JoiningDate { get; set; }
    

    【讨论】:

      猜你喜欢
      • 2020-07-15
      • 2019-08-19
      • 1970-01-01
      • 2013-04-15
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 1970-01-01
      相关资源
      最近更新 更多