【发布时间】:2013-08-07 00:05:40
【问题描述】:
在 ASP.NET MVC 中,与 ValidationMessage 中显示的消息相比,是否可以在 ValidationSummary 中显示不同的消息?
IE - 如果我有一个FirstName 文本框,验证时文本框旁边的消息会显示“您需要填写此内容”,但在验证摘要中会显示“请提供名字”。
【问题讨论】:
在 ASP.NET MVC 中,与 ValidationMessage 中显示的消息相比,是否可以在 ValidationSummary 中显示不同的消息?
IE - 如果我有一个FirstName 文本框,验证时文本框旁边的消息会显示“您需要填写此内容”,但在验证摘要中会显示“请提供名字”。
【问题讨论】:
我不确定我是否完全理解您要完成的工作,但您可以在验证摘要中指定一般错误消息。在您看来,您可以使用:
@Html.ValidationSummary(true, "Please correct the errors below")
布尔参数表示是否要排除属性错误。该字符串是您要显示的消息。按照我上面的方式使用这种重载,模型级错误消息 Please correct the errors below 将显示在 @Html.ValidationSummary() 方法的位置,并且属性错误将显示在您放置 @Html.ValidationMessageFor() 方法的位置。
有关重载的完整列表,请参阅 the MSDN documentation。
【讨论】:
是的。从智能感知上看应该很明显。
你会说:
@Html.ValidationSummary(true)
它将包含模型上的错误消息或默认消息
你可以说:
@Html.ValidationMessageFor(m => m.Property, "This is a custom message")
这会覆盖单个消息上的消息。
【讨论】:
另外,请记住 @Html.ValidationSummary(true, 'Header Message') 将显示您的自定义摘要消息以及您在模型数据注释中提供的相同消息。
即在您的模型类中:
[Required(Message="First name is required")]
public string FirstName { get; set; }
您的验证摘要如下所示:
标题消息
或者,您可以在控制器中使用 ModelState.AddModelError("Key", "Message") 构建自定义消息集合,然后使用 ViewData 在视图中引用该键。
【讨论】:
查看可用的元数据后,我认为我想做的事情是不可能的。我要做的是输入特定的输入值进行验证,然后隐藏类field-validation-valid。
【讨论】:
@Html.ValidationSummary 无法在输入字段旁边和验证摘要中提供不同的错误消息。这样的功能可能是有意义的,因为错误消息的一部分信息可能来自它在页面中的位置(例如,在名字输入字段旁边,消息可能是“需要输入”,而在验证摘要中,您需要“名字需要输入”) .不幸的是,MVC 中 ValidationSummary 的实现很差,.net 2.0 提供了在其验证器和验证摘要中具有不同消息的功能。
【讨论】: