【问题标题】:MVC Show different ValidationSummary ErrorMessage compared to ValidationMessage与 ValidationMessage 相比,MVC 显示不同的 ValidationSummary ErrorMessage
【发布时间】:2013-08-07 00:05:40
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net-mvc validation


    【解决方案1】:

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

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

    布尔参数表示是否要排除属性错误。该字符串是您要显示的消息。按照我上面的方式使用这种重载,模型级错误消息 Please correct the errors below 将显示在 @Html.ValidationSummary() 方法的位置,并且属性错误将显示在您放置 @Html.ValidationMessageFor() 方法的位置。

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

    【讨论】:

      【解决方案2】:

      是的。从智能感知上看应该很明显。

      你会说:

      @Html.ValidationSummary(true) 
      

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

      你可以说:

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

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

      【讨论】:

      • 关闭 - 但“这是一条自定义消息”将出现不管。我希望它只显示为错误.. 我真的不想将我的验证消息放在视图中 - 我更愿意将它们保留在元数据中。
      • 我向您保证,该消息仅在出现错误时出现。您可以在此处阅读文档。 msdn.microsoft.com/en-us/library/ee703502(v=vs.108).aspx那我对你的问题的理解还不清楚,因为,如果你不想在视图中自定义消息,你怎么期望有两条不同的消息?您可以轻松地让该消息为每个字段显示“您需要填写此内容”。具体错误将根据元数据出现在摘要中。
      【解决方案3】:

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

      即在您的模型类中:

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

      您的验证摘要如下所示:

      标题消息

      • 名字是必填项

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 您要求做的事情可能的,@ErikFunkenbusch 为您提供了适当的答案。
        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 2010-10-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多