MVC3 - How to insert a ValidationMessageFor with a line break <br /> at the end?
我在一个表单中验证大约 10 个输入文件。 ValidationMessageFor-tags 应该在页面的顶部,所以我写的每一个都像:
1 2 | @Html.ValidationMessageFor(model => model.Customer.ADDRESS.NAME) @Html.ValidationMessageFor(model => model.Customer.ADDRESS.CITY) |
等等。
我的模型如下所示:
1 2 3 4 | [Required(ErrorMessage = Constants.ErrorMsgNameMissing)] public string NAME { get; set; } [Required(ErrorMessage = Constants.ErrorMsgCityMissing)] public string CITY { get; set; } |
常量是字符串。
现在,如果显示了多个 ValidationMessageFor,它们都在一行中。
如何在每条消息的末尾插入像
这不是正确的方法:
1 2 | @Html.ValidationMessageFor(model => model.Customer.ADDRESS.NAME)<br /> @Html.ValidationMessageFor(model => model.Customer.ADDRESS.CITY)<br /> |
因为即使没有错误也会显示
提前致谢。
PS:将它们显示为列表也很棒。
我想你真正要找的是:
1 | @Html.ValidationSummary() |
我不确定是否有内置方法,但您可以轻松制作另一种扩展方法:
1 2 3 | public static MvcHtmlString ValidationMessageLineFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression) { return helper.ValidationMessageFor(expression) +"<br />"; } |
类似的东西?
其实最上面应该是:
1 | @Html.ValidationSummary(/*...*/) |
字段验证应与各自的字段。
但是,如果你绝对坚持将
查看 Custom ValidationSummary 模板 Asp.net MVC 3。我认为,如果您可以完全控制验证的呈现方式,那将是最适合您的情况。您可以轻松地为
编写扩展方法
如果可能的话,我会选择@Html.ValidationSummary()