我知道这个话题已经讨论了很多次。
我想使用
@Html.EditorFor(u => u.Password, new { required = "required" })
很遗憾,这在默认情况下是不可能的,因为EditorFor会覆盖Html属性。
我不想使用TextBoxFor,因为我希望根据DisplayFormat属性格式化值。
有没有什么解决方案?
我知道这个话题已经讨论了很多次。
我想使用
@Html.EditorFor(u => u.Password, new { required = "required" })
很遗憾,这在默认情况下是不可能的,因为EditorFor会覆盖Html属性。
我不想使用TextBoxFor,因为我希望根据DisplayFormat属性格式化值。
有没有什么解决方案?
您可以为字符串类型编写自定义编辑器模板(~/Views/Shared/EditorTemplates/string.cshtml
):
@Html.TextBox(
"",
ViewData.TemplateInfo.FormattedModelValue,
ViewData
)
然后:
@Html.EditorFor(u => u.Password, new { required = "required" })
将如预期一样工作。
new { required = "required" }
参数没有任何效果,这很正常,因为内置在ASP.NET MVC中的默认编辑器模板不使用它们。这就是为什么我建议创建一个自定义的编辑器模板,以便使用这些参数。 - Darin Dimitrov不确定是否可行,但您可以将 [Required] 作为 Model 上的属性装饰器。