在我的应用程序中,我希望所有日期都以MM / DD / YYYY格式显示,并且我还希望文本框限制为10个字符并且应用了某个类。
为此,我为Date制作了一个自定义编辑器模板,如下所示:
@ModelType System.Nullable(Of DateTime)
@Html.TextBoxFor(Function(d) d, New With {.class="polkDate", .maxlength="10"})
然后在我看来,我只能打电话给@Html.EditorFor(Function(m) m.someDate)
,这很有效。但是,因为我正在使用TextBoxFor
,所以它不尊重应用于我的模型类的DisplayFormat
属性(即它也会吐出时间而不是格式化日期)。
我希望使用EditorFor
以便它尊重我想要的格式,但是你不能添加类和maxlength等属性。我也尝试使用普通的旧TextBox
帮助器,但我不知道如何使它生成正确的ID,以便模型绑定仍然有效。
有人知道如何实现这一目标吗?我不觉得我想做的事情太过于古怪。
答案 0 :(得分:1)
这似乎可以解决问题:
@ModelType Date
@If Date.MinValue.Equals(Model) Then
@Html.TextBox("", Nothing, New With {.class="polkDate", .maxlength="10"})
Else
@Html.TextBox("", Model.ToShortDateString(), New With {.class="polkDate", .maxlength="10"})
End If
看起来框架会自动分配html输入标记的ID和名称字段,以便一切正常。