2012-10-30 1 views
1

MVC4 웹 응용 프로그램에서 SimpleMembership을 사용하고 있습니다. 프로필 정보를 편집하는 방법을 알 수 없습니다. 나는 네가 다른 테이블을 만드는 것처럼 그것을 할 수 있다고 생각했다.SimpleMembership에서 사용자 프로필 데이터 편집

 [HttpPost] 
     public ActionResult EditUser(UserProfile user) 
     { 
      if (ModelState.IsValid) 
      { 
       udb.Entry(user).State = EntityState.Modified; 
       udb.SaveChanges(); 
       return RedirectToAction("Index"); 
      } 

현재 엔터티 상태가 현재 컨텍스트에 존재하지 않는다는 오류가 표시됩니다. 내 컨텍스트는 컨트롤러 상단에서 다음과 같이 정의됩니다.

액세스 프로필 데이터에는 많은 참조 정보가 있지만 데이터 편집에는 아무 것도 없습니다. 편집 한 UserProfile 데이터를 다시 db에 저장할 수 있습니까?

EDIT : entityState 오류를 해결할 수있었습니다. system.data 및 system.data.entity를 포함해야했습니다. 그러나 지금 내가 실행할 때 예기치 않은 행 수가 수정 된 (0)이라는 편집 오류가 발생합니다. udb.SaveChanges() 행을 가리 킵니다. 여전히 UserProfile 데이터 요소를 수정하는 방법을 알 수 없습니다.

답변

0

간단한 답변입니다. 내 견해로는 Model에 대한 모든 필드를 설정해야했습니다. 나는 사용자가 6 명 중 4 명을 변경하도록 허용하고 있었기 때문에 2 명이 설정되지 않았습니다.

뷰에 모델을 전달할 때 뷰에 설정되지 않은 경우 뷰가 동일한 필드 값을 해당 동작으로 전달할 것이라고 생각했습니다. 예를 들어, 뷰에 FirstName을 설정했지만 UserName을 설정하지 않은 경우 뷰에 전송 된 원래 UserName이 모델에 전달됩니다. 그것은 사실이 아닌 것처럼 보입니다. 모델의 모든 항목에 대해보기에서 변경할 수 없도록 필드를 설정하여 숨겨진 필드를 설정하여 완전한 모델을 보냈습니다.

개별 필드를 설정하는 것이 더 좋을지 모르지만 그 방법을 아직 잘 모르겠습니다. 문제가 아니 었습니다.