我正在使用MVC4 Razor为仅限日期字段构建一个输入框。这是我的代码:
@Html.EditorFor(model => model.StartDate, new { @class = "form-control", type = "text" })
对于StartDate
,我有以下定义:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public DateTime StartDate{ get; set; }
使用纯HTML条目样式,框不会被表单控件格式化。
我已经尝试更改日期文本,但它不适用于IE,因为这是一个不受支持的功能...而且我的应用程序也必须与IE一起使用。
我知道MVC5在该领域有一些变化,但我无法从项目要求中使用它。它应该是MVC4。
如何将数据输入样式设置为表格控件?
答案 0 :(得分:1)
添加属性仅适用于MVC 5.1,因此您是正确的,这是行不通的。您可以将一个EditorTemplates文件夹添加到/ Views / Shared文件夹,并为DateTime添加一个编辑器,然后根据需要定义HTML控件。在您的模板中,您可以定义:
//DateTime.cshtml
model System.DateTime
@Html.TextBox("", Model.ToShortDateString(), new { @class = "form-control" })
答案 1 :(得分:1)
我的解决方案是在/ Views / Shared中添加一个EditorTemplate,添加bootstrap datepicker(来自here)和以下代码:
@model DateTime?
@Html.TextBox("", Model.HasValue ? Model.Value.ToString("d") : String.Empty, new { @class = "form-control" })
<script type="text/javascript">
$(function () {
// target only the input in this editor template
$('#@Html.IdForModel()').datetimepicker({
pickTime: false
});
});
</script>
工作正常...使用datepicker ....