c# - 如何使用输入类型=日期的 Html.TextBoxFor?

标签 c# asp.net-mvc html input

<分区>

我想在我的代码中实现。为此,我有以下内容:

@Html.TextBoxFor(model => model.CreationDate, new { @type = "date" })

此代码生成以下 HTML:

<input data-val="true" data-val-date="The field CreationDate must be a date." 
             data-val-required="The CreationDate field is required." 
             id="CreationDate" name="CreationDate" type="date" 
             value="09/05/2012 15:02:19">

该值不会显示在网页上,因为 type="date"需要 YYYY-MM-DD 格式的数据。

我试过格式化日期,但当然会失败。

@Html.TextBoxFor(model => model.CreationDate.ToString("YYYY-MM-DD"), 
                 new { @type = "date" })

如何使用 TextBoxFor 方法正确显示结构? 或者我应该使用其他方法(我已经尝试过 EditorFor 但失败了)?

CreationDate 是 DateTime 类型。

最佳答案

试试这个;

@Html.TextBoxFor(model => model.CreationDate,
           new { @type = "date", @Value = Model.CreationDate.ToString("yyyy-MM-dd") })

设置值时必须处理null

如果你可以改变模型,你可以试试这个;

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

在您看来,您可以使用 EditorFor 助手。

@Html.EditorFor(model => model.CreationDate, new { @type = "date" })

关于c# - 如何使用输入类型=日期的 Html.TextBoxFor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25086909/

相关文章:

c# - 垃圾回收是如何收集自引用对象的?

c# - 为什么我在尝试创建用户时收到无效对象名称错误?

c# - ASP.NET MVC DropDownList 未设置选定值

html - 如何强制服务 worker 更新?

javascript - 添加查询字符串时验证不起作用

c# - WPF 使用异步方法更新 ListBox 中的项目源

C# linq - 在运行时更改选定的字段

javascript - 在 ASP.NET MVC 中将 javascript 和 css 文件与 Rejuicer 结合

javascript - 获取不在特定 div 中的所有表单输入

javascript - 页面加载时如何关注特定选项卡