【问题标题】:Use asp-validation-for without binding to model property使用 asp-validation-for 而不绑定到模型属性
【发布时间】:2018-07-19 11:32:56
【问题描述】:

在过去,当用户名或密码不正确时,我总是使用以下代码使某些内容全局清晰,例如使用登录表单。我不希望此错误消息链接到特定模型属性(如用户名或密码),而只是自定义 ValidationMessage。

控制器:

ModelState.AddModelError("Combination", "Password or username not correct.");

查看:

@Html.ValidationMessage("Combination")

在使用 VS17 生成的新示例中,它使用 not @Html.ValidationMessageFor()@Html.ValidationMessage() 不再是,但更简单
<span asp-validation-for="Username" class="text-danger"></span>

现在问题出现了,我找不到像 asp-validation="Combination" 这样替换 @Html.ValidationMessage() 的东西。

这是完全不同的吗,是我遗漏了什么,还是我需要使用旧的@Html.ValidationMessage() 作为替代?

【问题讨论】:

    标签: asp.net-core asp.net-core-2.0 asp.net-validators


    【解决方案1】:

    如果要设置“全局”验证错误,可以简单地使用空字符串来指定错误与特定属性无关:

    ModelState.AddModelError(string.Empty, "Password or username not correct.");
    

    有了这个,你可以使用asp-validation-summary标签助手来生成你的消息(或消息——你可以用string.Empty多次调用AddModelError):

    <div asp-validation-summary="ModelOnly"></div>
    

    通过指定ModelOnly,只会显示您使用string.Empty 添加的那些验证消息。

    【讨论】:

      猜你喜欢
      • 2015-01-04
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 1970-01-01
      • 2018-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多