ASP.NET MVC - 如果由于不显眼的js验证而已经存在类,如何将类添加到Html.EditorFor?

时间:2010-11-24 23:29:07

标签: asp.net-mvc editortemplates

我正在尝试向Class内的EditorFor助手添加EditorTemplate

问题在于因为我正在使用不引人注目的验证,所以输入元素已经分配了类。

这是我的EditorTemplate

@Inherits System.Web.Mvc.ViewUserControl(Of Nullable(Of Date))
@Html.TextBox("", If(Model.HasValue, String.Format("{0:MM/dd/yyyy}"), String.Empty), New With {.class = "datepicker"})

这是输出

<input class="text-box single-line" id="BirthDate" name="BirthDate" type="text" value="08/08/1980" />

您可以在此处看到尚未添加datepicker类,但“值”已正确格式化。

基本上我可以看到EditorTemplate正在运行,但Class未被附加到<input>元素上的其他类。

你们中的任何人都知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

原来我必须在我的好友班上添加<UIHint("Date")>

一切都是对的。

@ModelType Date?
@Html.TextBox("", If(Model.HasValue, String.Format("{0:MM/dd/yyyy}", Model), String.Empty), New With {.class = "datepicker"})

以下是UIHint的原因。

  

默认模板名称基于CLR类型名称,在本例中为DateTime。 “Date”是VB中的快捷名称,而不是真正的类型名称(很像C#中的“int”实际上是CLR“Int32”的快捷方式)。

答案 1 :(得分:-1)

试试这个

@Inherits System.Web.Mvc.ViewUserControl(Of Nullable(Of Date))
@Html.TextBox("", If(Model.HasValue, String.Format("{0:MM/dd/yyyy}"), String.Empty), new {.class = "datepicker"})