2010-02-11 3 views
0

간단한 웹 앱을 만들려고합니다. ID, 이름, 암호 및 전자 메일 인 User 테이블이 있습니다. ID는 자동으로 할당되는 카운터입니다. 데이터베이스에 사용자를 추가하는 사용자/작성 조치가 있습니다. 그들은 그들의 이름, 비밀 번호 및 이메일을 작성하고 제출을 클릭하십시오.데이터베이스에 제출할 정보를 얻을 수 없습니다.

내 문제는 .. 필드가 제출되지 않고 낯선 사람이 무엇, 그것은 내가 "항목"컨트롤러가 동일한 코드와 그 잘 작동한다는 것입니다

코드 :

public interface IUserRepository { 
    IQueryable<User> FindAllUsers(); 
    User GetUser(int id); 
    void Add(User user); 
    void Update(User user); 
    void Delete(User user); 
} 

...

public void Add(User user) { 
    db.Users.InsertOnSubmit(user); 
    db.SubmitChanges(); 
} 

...

public ActionResult Create() 
{ 
    return View(); 
} 

// 
// POST: /User/Create 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Create(User user) 
{ 

    if(ModelState.IsValid){ 
     try 
     { 
      _repository.Add(user); 
      return RedirectToAction("Index"); 
     } 
     catch 
     { 
      return View(user); 
     } 
    } 
    else 
    { 
     return View(user); 
    } 
} 

누구가 잘못 알고 있습니까? 제출을 누르면 제출 양식이 다시로드됩니다. 다시 인덱스로 리디렉션되지 않습니다.

답변

1

예.

public ActionResult Create([Bind(Exclude="Id")] User user) 
+0

아니, 아무 것도하지 않았다. –

+1

데이터베이스에 기본 키가있는 경우이 작업을 수행해야합니다. 기본 담당자가 신분 확인 열을 보유하고 있습니까? 확인하십시오. –

+0

기본 키에 ID 열이 있지만 양식에 ID를 제출하지 않습니다. 내가 생각한 방식은 모든 데이터베이스 삽입시 ID를 증가시키는 것뿐이었습니다. –

1

당신이 방법 당신의 만들기 (사용자 사용자)의 시작 Visual Studio에서 브레이크 포인트를 삽입 한 다음 디버거를 실행 시도 유무 : 대부분의 경우 당신은 당신의 포스트에 기본 키 alot을 할 필요가 ? 이것은 이런 상황에서 어떤 일이 일어나는지 알아내는 좋은 방법입니다.

나는 가끔씩 실행해야한다고 생각되는 방법이 호출조차되지 않는다는 것을 발견했다.이 경우에는 중단 점에 결코 도달하지 못한다.

중단 점에 도달하면 코드의 변수 위로 마우스를 가져가 값이 무엇인지 확인할 수 있습니다.

관련 문제