사용자가 이메일을 변경하도록 허용하고 있지만 데이터베이스를 업데이트하려고 할 때 예외가 발생합니다. 지정된 메소드는 지원되지 않습니다.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