首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的日期输入没有读取模型值?

为什么我的日期输入没有读取模型值?
EN

Stack Overflow用户
提问于 2015-02-05 23:38:46
回答 2查看 268关注 0票数 3

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

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

代码语言:javascript
运行
复制
@Html.TextBoxFor(m => m.Date, new { @type="date", @id="ondate" })

好吧,这起作用了..。说大也大吧。我是说,它现在显示为一个日期选择者..。但它不再显示模型的日期了!

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-06 00:01:43

type="date"属性呈现浏览器HTML5数据报警器。为了使它正确工作,格式需要yyyy-MM-dd (ISO格式),所以它需要

代码语言:javascript
运行
复制
@Html.TextBoxFor(m => m.Date, "{0:yyyy-MM-dd}", new { @type="date" })

或者,您可以在属性上设置数据属性。

代码语言:javascript
运行
复制
[DataType(DataType.DateTime)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime Date { get; set; }

并使用

代码语言:javascript
运行
复制
@Html.EditorFor(m => m.Date)

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

边注:

  1. 只有在最新版本的Chrome中才支持HTML5数据报警器
  2. 使用EditorFor() (在MVC-4中)将不允许您设置id属性,但不清楚为什么需要将默认的id="Date"更改为id="ondate"
票数 1
EN

Stack Overflow用户

发布于 2015-02-05 23:43:59

试试这个:

代码语言:javascript
运行
复制
<%= Html.TextBoxFor(m => m.Date, new { @type = "date", @id = "ondate", @value = Model.Date.ToString("mm/dd/yyyy") })%>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28356115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档