如何应用日期格式并将属性添加到MVC3中的文本框?

时间:2010-12-20 21:27:06

标签: asp.net asp.net-mvc asp.net-mvc-3

在我的应用程序中,我希望所有日期都以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,以便模型绑定仍然有效。

有人知道如何实现这一目标吗?我不觉得我想做的事情太过于古怪。

1 个答案:

答案 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和名称字段,以便一切正常。