更新用户信息的问题
我是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