【问题标题】:asp-validation-summary not showing, field validation workingasp-validation-summary 未显示,字段验证工作
【发布时间】:2017-06-14 21:33:00
【问题描述】:

我正在使用 dotnet core MVC,但我遇到了 asp-validation-summary 的问题。

验证正在使用 asp-validation-for 在字段级别进行,但是我没有在 asp-validation-summary 中显示任何内容。

<div asp-validation-summary="ModelOnly" class="text-danger"></div>

我也试过

<div asp-validation-summary="All" class="text-danger"></div>

我缺少的任何想法。

完成大量搜索,但无法找到我的问题的解决方案

谢谢

【问题讨论】:

  • 能否包含模型和控制器代码
  • 我遇到了同样的问题,这里没有一个答案看起来像他们解决了它(因此我猜为什么没有一个被接受并且都是零票)。你有没有找到解决方案?
  • 我们需要您显示视图以及为表单生成的 HTML。没有这些,我们只能猜测。我的猜测可能是您有一些样式将display: none !important; 放在任何具有.validation-summary-errors 类的元素上。这是一个有效的猜测,例如为什么验证在字段级别而不是在摘要级别 LOL。
  • @zola25:当然可以:github.com/davidliang2008/DL.NetCore.EmptySolution。我刚刚检查了一些代码只是为了表明:github.com/davidliang2008/DL.NetCore.EmptySolution/commit/…
  • @zola25:我终于明白你现在的问题是什么了。我有一个简单的解决方案:只需复制 &lt;span asp-validation-for=""&gt;&lt;/span&gt; 并将它们放在表单顶部。这样,它会在更改字段时显示错误。现在你可能想要一个比这更可靠的答案。如果您可以提出一个单独的问题,我也许可以处理它并给您另一个答案。我认为您的问题与最初的提问者不同。

标签: asp.net-mvc validation asp.net-core-mvc .net-core


【解决方案1】:

您还可以包含用于验证标签助手的 jquery 脚本

<form asp-controller="home" asp-action="CreatePoll" method="post" class="mt-3">
        <div class="validation" asp-validation-summary="All"></div>
        <div class="form-group">
            <label asp-for="Name">Name of the Poll:</label>
            <input asp-for="Name" class="form-control" />
            <span asp-validation-for="Name" class="text-danger"></span>
        </div>

            <button type="submit" class="btn btn-primary">Create</button>

    </form>

    @section scripts{

        <script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
        <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
    }

【讨论】:

    【解决方案2】:

    使用 ValidationSummary 显示字段级错误消息:

    默认情况下,ValidationSummary 会过滤掉字段级别的错误消息。如果要将字段级错误消息显示为摘要,请指定 excludePropertyErrors = false。

    示例:显示字段错误的 ValidationSummary

    @Html.ValidationSummary(false, "", new { @class = "text-danger" })
    

    所以现在,在视图中将在顶部显示错误消息作为摘要。请确保每个字段都没有 ValidationMessageFor 方法。

    官方文档:https://msdn.microsoft.com/en-us/library/system.web.mvc.html.validationextensions.validationsummary(v=vs.118).aspx

    希望对你有帮助

    谢谢

    卡提克

    【讨论】:

    • 这个和&lt;div asp-validation-summary="All" class="text-danger"&gt;&lt;/div&gt;一样...
    【解决方案3】:

    您应该为每个模型字段添加此 asp-validation-summary="ModelOnly" 并在 html 表单之前设置 @Html.ValidationSummary()

    //Validation Summary Parameters
    public static MvcHtmlString ValidationSummary(
        this HtmlHelper htmlHelper,
        bool excludePropertyErrors, // to include or exclude your field validation errors
        string message,
        object htmlAttributes,
        string headingTag
    )
    
    @Html.ValidationSummary() // use this with your desired parameters
    <form>
      ...... // your inputs
      <input asp-for="YourField" class="form-control" />
      <span asp-validation-for="YourField" class="text-danger"></span>
    </form> 
    

    【讨论】:

    • 我已经将消息设置为 * 但希望文本显示在摘要中
    猜你喜欢
    • 2020-11-19
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 2018-11-01
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多