使用 asp-validation-for 而不绑定到模型 属性
Use asp-validation-for without binding to model property
过去,当用户名或密码不正确时,我总是使用以下代码来使全局清晰,例如使用登录表单。我不希望此错误消息 link 发送到特定模型 属性,例如用户名或密码,而只是自定义 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()
作为替代方案?
如果你想设置一个"global"验证错误,你可以简单地使用一个空字符串来指定错误不涉及特定的属性:
ModelState.AddModelError(string.Empty, "Password or username not correct.");
有了这个,您可以使用 asp-validation-summary
标签助手生成您的消息(或消息 - 您可以使用 string.Empty
多次调用 AddModelError
):
<div asp-validation-summary="ModelOnly"></div>
通过指定 ModelOnly
,将仅显示您使用 string.Empty
添加的验证消息。
过去,当用户名或密码不正确时,我总是使用以下代码来使全局清晰,例如使用登录表单。我不希望此错误消息 link 发送到特定模型 属性,例如用户名或密码,而只是自定义 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()
作为替代方案?
如果你想设置一个"global"验证错误,你可以简单地使用一个空字符串来指定错误不涉及特定的属性:
ModelState.AddModelError(string.Empty, "Password or username not correct.");
有了这个,您可以使用 asp-validation-summary
标签助手生成您的消息(或消息 - 您可以使用 string.Empty
多次调用 AddModelError
):
<div asp-validation-summary="ModelOnly"></div>
通过指定 ModelOnly
,将仅显示您使用 string.Empty
添加的验证消息。