在 ASP.NET MVC 中,是否可以显示与中显示的不同的ValidationSummary
消息ValidationMessage
?
IE - 如果我有一个FirstName
文本框,验证时文本框旁边的消息会显示“您需要填写此内容”,但在验证摘要中会显示“请提供名字”。
在 ASP.NET MVC 中,是否可以显示与中显示的不同的ValidationSummary
消息ValidationMessage
?
IE - 如果我有一个FirstName
文本框,验证时文本框旁边的消息会显示“您需要填写此内容”,但在验证摘要中会显示“请提供名字”。
我不确定我是否完全理解您要完成的工作,但您可以在验证摘要中指定一般错误消息。在您看来,您可以使用:
@Html.ValidationSummary(true, "Please correct the errors below")
布尔参数指示您是否要排除属性错误。该字符串是您要显示的消息。按照我上面的方式使用这种重载,模型级错误消息Please correct the errors below
将显示在@Html.ValidationSummary()
方法的位置,并且属性错误将显示在您放置@Html.ValidationMessageFor()
方法的位置。
有关重载的完整列表,请参阅MSDN 文档。
是的。从智能感知上看应该很明显。
你会说:
@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 提供了在其验证器和 validationsummary 中具有不同消息的功能。