2010-01-28 4 views
4

GET 및 POST 표준 편집 시나리오가 있습니다. 양식에 저장 버튼과 조회 버튼이있어서 사용자가 주소를 채우고 우편 번호를 반환하는 우편 번호를 조회 할 수 있습니다. 양식 필드. 조회 단추는 컨트롤러 편집 방법에 다시 게시됩니다.MVC POST가 수정 된보기 모델을 반환하지 않습니다.

다음은하지 실제 코드입니다하지만 내 문제를 보여줍니다 ...

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Edit(int CustomerId, string LookupButton) 
{ 
    Customer customer = new Customer(); 
    UpdateModel(customer); 
    //customer.County = "Hello world!"; 
    return View(customer); 

    ... 
} 

이 코드는 예상대로, 그냥 내가 직접 카운티 필드를 변경하는 행의 주석을 해제하지만 때, 기존의 폼 데이터를 반환하지 않습니다 변경 사항은 양식에 표시되지 않습니다. 이 형식으로 인해 나를 던졌습니다.

<%= ViewData.Eval("County") %> 

"Hello world!" 그러나

<%= Html.TextBox("County") %> 

은 여전히 ​​이전 값을 유지합니다.

<input id="County" name="County" type="text" value="" /> 

고객은 EF4 클래스입니다.

도움을 주시면 감사하겠습니다.

답변

4

Html.TextBox은 게시 된 요청 값을 먼저보고 나서 컨트롤러에서 업데이트 한 모델을 먼저 확인하기 때문입니다. 게시 된 요청 값에서 이전 값을 찾습니다.

+0

하지만 를 수행하는 경우 그 결과 동일한는 여전히으로 Request.Form의 값을 구해 I 밀어 수 없다 읽기 전용이기 때문에 거기에 값이 있습니다. – Mark

+6

데이터가 ModelState에서 오는 것 같습니다. 내가 발행 할 경우 ViewData.ModelState.Clear(); 보기를 반환하기 전에 예상대로 작동합니다. – Mark

+3

비슷한 문제가있었습니다. 새 모델을 반환하지만 게시 된 모델에서 하나의 값을 재사용하는 "저장하고 계속하기"버튼이 애플리케이션에 있습니다. 그러나 어떤 이유로 든 모든 값을 반환했습니다. ModelState를 지우는 것이 트릭을 만들었습니다! –

관련 문제