我是 asp.net mvc 4 和 EF 的新手。我正在创建创建/更新用户信息的用户模型。模型代码如下:
....
public int UserID { get; set; }
[Required]
public string UserName { get; set; }
[Required]
public string Password { get; set; }
[Compare("Password")]
public string VerifyPassword { get; set; }
.....
SOME OTHER FIELDS COMES HERE
......
该模型用于创建/更新活动。这适用于创建用户,但在更新时我不希望用户更新他的 ID、用户名,所以我将其保留为只读,也不想显示用户密码/验证密码字段,因此我将其从视图中删除。现在在更新(编辑模式)时,我总是收到密码字段的验证错误消息。所以我的问题是如何避免更新这些字段并更新其他字段。为了解决这个问题,我尝试创建视图模型,但它对我没有帮助。还在控制器中添加了用于绕过验证的代码:
public ActionResult Edit(User user)
{
ModelState.Remove("Password");
ModelState.Remove("VerifyPassword");
ModelState.Clear();
if (ModelState.IsValid)
{
db.Entry(user).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
}
这给了我 ModelState.IsValid = true 但无法更新。请给我解决这个问题。
提前致谢..