对使用asp验证,而不绑定到模型属性



过去,当用户名或密码不正确时,我总是使用以下代码来全局清除某些内容,比如使用登录表单。我不希望这个错误消息链接到特定的模型属性,如用户名或密码,而只是一个自定义的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()作为替代?

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

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

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

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

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

最新更新