与ValidationMessage相比,MVC显示不同的ValidationSummary ErrorMessage

时间:2013-08-07 00:05:40

标签: asp.net-mvc validation

在ASP.NET MVC中,是否可以在ValidationSummary中显示与ValidationMessage中显示的内容不同的消息?

IE - 如果我有FirstName文本框,在验证时,文本框旁边的消息会显示“您需要填写此内容”,但在验证摘要中会显示“请提供名字” ”。

5 个答案:

答案 0 :(得分:2)

我不确定我是否完全理解您要完成的任务,但您可以在验证摘要中指定一般错误消息。在您的视图中,您可以使用:

@Html.ValidationSummary(true, "Please correct the errors below")

boolean参数指示是否要排除属性错误。字符串是您要显示的消息。以我上面的方式使用此重载,将显示模型级错误消息Please correct the errors below以代替@Html.ValidationSummary()方法,并且会在您放置@Html.ValidationMessageFor()的位置显示属性错误方法

有关重载的完整列表,请参阅the MSDN documentation

答案 1 :(得分:2)

是。通过观察智能感知应该是非常明显的。

你会说:

@Html.ValidationSummary(true) 

它将包含模型上的错误消息或默认消息

你可以说:

@Html.ValidationMessageFor(m => m.Property, "This is a custom message")

这会覆盖单个消息上的消息。

答案 2 :(得分:0)

另外,请记住@Html.ValidationSummary(true,'标题消息')将显示您的自定义摘要消息以及您在模型数据注释中提供的相同消息。

即。在你的模型类中:

[Required(Message="First name is required")]
public string FirstName { get; set; }

您的验证摘要看起来像这样:

标题消息

  • 需要名字

或者,您可以使用控制器中的ModelState.AddModelError(“Key”,“Message”)构建自定义消息集合,然后使用ViewData在视图中引用该键。

答案 3 :(得分:0)

在查看可用的元数据后,我不认为我想做的事情是可能的。我要做的是输入用于验证的输入特定值,并隐藏类field-validation-valid

答案 4 :(得分:0)

@ Html.ValidationSummary无法在输入字段和验证摘要旁边提供不同的Errormesages。这样的功能可能是有意义的,因为错误消息的一部分信息可以来自它在页面中的位置(例如,在第一个名称输入字段旁边,消息可以是“需要输入”,在验证摘要中,您需要'输入名字所需的输入') 。不幸的是,MVC中的ValidationSummary实现很差,.net 2.0提供了这个功能,在它的验证器和验证总结中都有不同的消息。