0
我試圖讓用戶更改他的電子郵件,但當我嘗試更新數據庫時,我收到一個異常:不支持指定的方法。MVC Membership.UpdateUser(u);不支持指定方法
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ManageEmail(LocalEmailModel model)
{
//UserProfile u = new UserProfile();
if (ModelState.IsValid)
{
bool TryPasswordNow;
var user = Membership.GetUser(User.Identity.Name);
MembershipUser u = Membership.GetUser(User.Identity.Name);
try
{
TryPasswordNow = WebSecurity.ChangePassword(User.Identity.Name, model.OldPassword, model.OldPassword);
}
catch (Exception)
{
TryPasswordNow = false;
}
if (TryPasswordNow == true)
{
user.Email = model.NewEmail;
db.SaveChanges();
u.Email = model.NewEmail;
Membership.UpdateUser(u);
}
return RedirectToAction("Manage", "Account");
}
return RedirectToAction("Manage", "Account");
}
正如你可以看到ive試過db.savechanges和membership.updateuser。第一次通過但不改變電子郵件,第二次給我一個例外。不應該這兩個工作?爲什麼我的更改沒有註冊?謝謝..
嗨,謝謝你的回覆。好吧,我看到了,但不應該db.SaveChanges();保存我的更改? – Reft
不是在這種情況下 - MembershipUser(您希望通過「user」變量保存的對象)不是由實體框架跟蹤的實體 - 它只是一個像其他任何對象一樣的對象,因此就SaveChanges()而言,沒有什麼可以改變的。 – rfernandes