0

我需要知道是否有 ValidationMessage。因为我想
在错误消息中添加 " 标记。

@if (Html.ValidationMessageFor(m => m.UserId)){
 Html.ValidationMessageFor(m => m.UserId) + "<br />
}

上面的代码不起作用,有人知道它是如何工作的吗?

谢谢!

4

3 回答 3

2

您需要检查 ModelState 是否存在该特定错误。例如:

@if (ModelState["UserId"].Errors.Count > 0) {
    Html.ValidationMessageFor(m => m.UserId) @:<br/>
}

如果你到处都有它,这可能会变得非常丑陋。如果你需要做很多,那么创建一个自定义的 Html Helper 扩展。

于 2012-05-21T20:56:54.277 回答
1

如果您需要在验证消息中添加一些标记,我建议您创建一个自定义标记。您需要做的就是创建一个新的助手并将该逻辑封装在助手本身中

像下面这样的东西

   public MvcHtmlString MyValidationMessageFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression)
    {
         //your logic here

     }
于 2012-05-21T20:52:40.830 回答
0

你的问题很不清楚。请澄清您想要实现的目标。

如果您想在有错误时显示错误,如果没有则不显示错误,您不需要像 Mystere Man 建议的那样编写单独的“if()”逻辑。

只需使用Html.ValidationMessageFor(m => m.UserId)由 css html 正确格式化并正确引用验证所需的脚本即可。

通过正确格式化的 html 我的意思是在 div 标签中的输入旁边有验证块,这样你就不必<br>为新行添加 s 。

于 2012-05-21T22:18:05.657 回答