ユーザーが自分のプロファイルの詳細を変更できるようにしたい(UserId、Username、password(別のビューでパスワードが変更された)を除く)
だから私の方法でそれをそのようにするとき
public void SaveUser(UserProfile user)
{
context.Entry(user).State = System.Data.EntityState.Modified;
context.SaveChanges();
}
ストアの更新、挿入、または削除ステートメントが予期しない行数(0)に影響するというエラーが発生します。その後、誰かが別の方法でそれを作ることを提案したスタックオーバーフローをサーフィンしたので、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();
}
}
これらの変更後、このエラーは発生しなくなりましたが、プロファイルの詳細は変更されていません。
私のHttpPostEditメソッド(HttpGetは正しい情報を取得します)
[HttpPost]
public ActionResult Edit(UserProfile user)
{
if (ModelState.IsValid)
{
repository.SaveUser(user);
return View(user);
}
return View();
}
編集ビューには、すべて(ID、ユーザー名、パスワードを除く)のLabelForとEditorForと[送信]ボタンしかありません。
それを一日中解決しようとしていて、まだ成功していません。