【问题标题】:Why is my date input not reading the model value?为什么我的日期输入没有读取模型值?
【发布时间】:2015-02-05 23:38:46
【问题描述】:

我是一个服务器端的人,试图自学一点 CSS、Javascript、jQuery 等。我编写了一个小测试项目,它加载一个模型并在简单的文本框中显示值。工作正常,如您所见:

当然,我想适当地显示这些日期。因此,让我将这些输入类型更改为“日期”。这是 Razor 代码:

@Html.TextBoxFor(m => m.Date, new { @type="date", @id="ondate" })

嗯,这行得通....有点。我的意思是,它现在显示为日期选择器......但它不再显示模型的日期!

我做错了什么?

【问题讨论】:

  • 我为可爱的格式化截图点赞! :)

标签: javascript jquery asp.net-mvc-4 razor


【解决方案1】:

type="date" 属性呈现浏览器的 HTML5 日期选择器。为了使它正常工作,格式需要是yyyy-MM-dd(ISO格式),所以它需要是

@Html.TextBoxFor(m => m.Date, "{0:yyyy-MM-dd}", new { @type="date" })

您也可以在属性上设置数据属性

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

并使用

@Html.EditorFor(m => m.Date)

添加type="date" 属性并使用正确的格式。

旁注:

  1. HTML5 日期选择器仅在最新版本的 Chrome 中受支持
  2. 使用 EditorFor()(在 MVC-4 中)将不允许您设置 id 属性,但不清楚为什么需要更改 默认id="Date"id="ondate"

【讨论】:

    【解决方案2】:

    试试这个:

    <%= Html.TextBoxFor(m => m.Date, new { @type = "date", @id = "ondate", @value = Model.Date.ToString("mm/dd/yyyy") })%>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-29
      • 2011-06-30
      • 2018-04-20
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 1970-01-01
      • 2019-04-24
      相关资源
      最近更新 更多