【问题标题】:MVC 4 EditorFor/TextBoxFor and date fieldMVC 4 EditorFor/TextBoxFor 和日期字段
【发布时间】:2013-07-11 20:13:20
【问题描述】:
NweBee here...我们如何使用 MVC 4 在具有特定宽度的输入框中仅显示和编辑日期时间字段的日期部分?我们似乎可以通过在 EditorFor 中使用日期编辑器模板来获取日期部分,并且可以在 TextBoxFor 中使用 class="width.. 设置宽度,但似乎无法同时获取两者。
【问题讨论】:
标签:
asp.net-mvc
asp.net-mvc-4
razor
【解决方案1】:
您可以像这样将格式指定为@Html.TextBoxFor:
@Html.TextBoxFor(m => m.Date, "{0:dd/MM/yyyy}", new { @class = "width-xx" })
您还可以在this guide 之后为日期时间字段实现自定义编辑器模板,并将您的自定义 CSS 类包含在新模板中。如果您需要在整个应用程序或特定控制器中使用相同的样式,则此解决方案非常好。
【解决方案2】:
一种方法是将您的 @Html.EditorFor() 包装在一个 div 中,并通过在包含的 div 中选择输入来应用您的样式。
<div class="editorfordate">
@Html.EditorFor(m=>m.MyDate)
</div>
还有 CSS:
.editorfordate > input {
width: 34px; /* or whatever you want */
}
更好的方法是实现自定义 EditorFor 模板,这样每次您使用 @Html.EditorFor() 帮助器时,都会自动创建额外的包装器 div。