加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 重新评估ModelState.IsValid属性

发布时间:2020-12-16 03:51:55 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试验证用户更改其密码.此actionresult采用的PasswordChange类有4个属性.其中一个是 databasePassword,它与“CurrentPassword”属性进行比较,确保用户只有在知道当前密码时才能更改密码(在网站上非常标准) 我遇到的问题是数据库密码只在ActionResult
我正在尝试验证用户更改其密码.此actionresult采用的PasswordChange类有4个属性.其中一个是 databasePassword,它与“CurrentPassword”属性进行比较,确保用户只有在知道当前密码时才能更改密码(在网站上非常标准)

我遇到的问题是数据库密码只在ActionResult中设置(如图所示),但是ModelState似乎在此之前被调用,所以它在“IsValid”上返回false,因为它甚至在数据库密码为组

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult ChangePassword(PasswordChange model)
    {
        var User = GetPlayer().User;
        model.databasePassword = User.Password; 

        if (ModelState.IsValid)
        {
            //update the users password
            User.Updated = SystemDate.Current();
            User.Password = model.newPassword.ToLower();

            return Redirect("/Player");
        }
        else
        {
            return View(model);
        }
    }

我怎样才能重新评估或评估我想要的时间!

解决方法

如果您的作业已修复,请检查错误并清除它.简化检查:

model.databasePassword = User.Password;
if (ModelState["databasePassword"].Errors.Count == 1)
{
    ModelState["databasePassword"].Errors.Clear();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读