我知道这已经讨论了很多次。HTML(5)属性为EditorFor
我想使用
@Html.EditorFor(u => u.Password, new { required = "required" })
Unfortunatley作为EditorFor覆盖HTML属性,这是不是默认可能。
我不想使用TextBoxFor,因为我想根据DisplayFormat属性对值进行格式化。
有没有解决方案?
我知道这已经讨论了很多次。HTML(5)属性为EditorFor
我想使用
@Html.EditorFor(u => u.Password, new { required = "required" })
Unfortunatley作为EditorFor覆盖HTML属性,这是不是默认可能。
我不想使用TextBoxFor,因为我想根据DisplayFormat属性对值进行格式化。
有没有解决方案?
你可以写一个自定义编辑器模板的字符串类型(~/Views/Shared/EditorTemplates/string.cshtml
):
@Html.TextBox(
"",
ViewData.TemplateInfo.FormattedModelValue,
ViewData
)
然后:
@Html.EditorFor(u => u.Password, new { required = "required" })
会达到预期效果。
那么OP表示“覆盖HTML属性”是什么意思? – 2013-03-22 09:58:34
@MichaelPerrenoud,你为什么问我?询问OP。我想他的意思是,他传递给编辑器模板的'new {required =“required”}'参数没有任何影响,这是完全正常的,因为内置ASP.NET MVC的默认编辑器模板不使用他们。这就是为什么我建议创建一个使用这些参数的自定义编辑器模板。 – 2013-03-22 09:59:56
完美,谢谢澄清! – 2013-03-22 10:02:27
“覆盖HTML属性”是什么意思? – 2013-03-22 09:49:41
@mosquito:你的问题实际上是什么?如果你想要的字段验证,你可以在模型中进行设置。 – Sharun 2013-03-22 09:53:15