Asp.Net MVC3(Razor Viewport),ValidationMessageFor?

时间:2012-05-21 20:49:34

标签: asp.net asp.net-mvc razor

我需要知道是否存在ValidationMessage。因为我想将“
标签添加到错误消息中。

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

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

谢谢!

3 个答案:

答案 0 :(得分:2)

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

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

如果你到处都有,这可能会变得非常难看。如果您需要执行此操作,请创建自定义Html Helper扩展。

答案 1 :(得分:1)

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

如下所示

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

     }

答案 2 :(得分:0)

你的问题很不清楚。请说明你想要达到的目标。

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

Html.ValidationMessageFor(m => m.UserId)通过css html正确格式化,并且对验证所需的脚本进行所有正确引用都可以解决问题。

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