使用asp-validation-for而不绑定到模型属性

时间:2018-07-19 11:32:56

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

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

控制器:

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

视图:

@Html.ValidationMessage("Combination")

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

使用此功能后,您可以使用asp-validation-summary标记助手来生成消息(或消息-您可以使用AddModelError多次调用string.Empty):

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

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