更新用户信息的问题

我是Entity Framework的新手,我必须更新数据库中的记录。 我使用了由MVC3框架生成的“编辑”示例,并试图根据需要进行定制。

我有一个密码字段,在提交更新之前,我需要使用MD5对其进行加密。 所有进程都正常运行,除了db.SaveChanges(); 它会保存表单发布的数据。 如果我尝试更改密码,则无关紧要,框架只是忽略该密码,并将数据保存在表单中。

我的.cshtml文件:

<div class="editor-label">
    @Html.Label("password", "Senha")
</div>
<div class="editor-field">
    @Html.Password("password")
</div>

我的方法:

[HttpPost]
public ActionResult Editar(FormCollection form)
{
    var newPassword = form["password"];
    var email = Session["email"].ToString();

    UserSet user = db.UserSet.SingleOrDefault(m => m.Email == email);

    if (ModelState.IsValid)
    {
        //Changing password
        user.Password = Crypto.CalculateMD5Hash(newPassword);//this line is ignored
        TryUpdateModel(user);
        db.SaveChanges();
        return Redirect("~/Home/Mural");
    }
     return View(user);
}

我错过了什么?


你的线

TryUpdateModel(user);

将覆盖您之前对模型所做的任何操作。

将订单更改为

TryUpdateModel(user);
user.Password = Crypto.CalculateMD5Hash(newPassword);//this line is ignored

它可能会工作。

链接地址: http://www.djcxy.com/p/33571.html

上一篇: Problems to update user information

下一篇: Detached entities causing duplicate ID issues