我想让用户可以更改他的个人资料详细信息(除了用户 ID、用户名和密码(密码在另一个视图中更改))
所以在我的方法中,当我这样做时
public void SaveUser(UserProfile user)
{
context.Entry(user).State = System.Data.EntityState.Modified;
context.SaveChanges();
}
我收到错误存储更新、插入或删除语句影响了意外的行数 (0)。之后我浏览了stackoverflow,有人建议用另一种方式,所以我编辑了我的SaveUser方法
public void SaveUser(UserProfile user)
{
var objectContext = ((System.Data.Entity.Infrastructure.IObjectContextAdapter
)context).ObjectContext;
try
{
objectContext.SaveChanges();
}
catch (OptimisticConcurrencyException)
{
objectContext.Refresh(RefreshMode.ClientWins, context.UserProfiles);
objectContext.SaveChanges();
}
}
在这些更改之后,我不再收到此错误,但是我的个人资料详细信息没有更改。
我的 HttpPost 编辑方法(HttpGet 检索正确信息)
[HttpPost]
public ActionResult Edit(UserProfile user)
{
if (ModelState.IsValid)
{
repository.SaveUser(user);
return View(user);
}
return View();
}
在我的编辑视图中,我只有 LabelFor 和 EditorFor 的所有内容(Id、用户名和密码除外)和提交按钮。
整天试图解决这个问题,但还没有成功。