我有一个密码重置页面,看起来像这样
我有验证,验证最近是否使用过新密码。
要求是如果最近使用过密码,则将新密码和确认密码字段标记为错误并显示验证消息,如下所示。
如何为这两个字段添加单个验证消息?
我试过这个
ModelState.AddModelError(newpasswordfieldname, "");
ModelState.AddModelError(confirmpasswordfieldname, AccountResources.FailMinPasswordHistory);
但显示错误"值password
无效。"用于新密码字段。
除了使用TempData/ViewData
之外,有没有办法实现这一点,即使用原生表单验证SDK?
答案 0 :(得分:0)
您是否尝试使用AddModelError(String, String)
重载?
ModelState.AddModelError(newpasswordfieldname, "This password was used too recently");
ModelState.AddModelError(confirmpasswordfieldname, "This password was used too recently");
向两个属性添加相同的自定义消息。
答案 1 :(得分:0)
由于我没有找到使用Native MVC验证SDK的解决方案,因此我不得不使用脏的解决方法。
在我的控制器中
ModelState.AddModelError(newpasswordfieldname, "DONOTSHOW");
ModelState.AddModelError(confirmpasswordfieldname, AccountResources.FailMinPasswordAge);
在我看来
@if(ViewData.ModelState["NewPassword"]!=null &&
ViewData.ModelState["NewPassword"].Errors.First().ErrorMessage!="DONOTSHOW")
{
@Html.ValidationMessageFor(model => model.NewPassword)
}