2009-09-19 3 views
1

보기를 반환하는 작업 메서드에서 양식을 렌더링 할 때 고전적인 시나리오가 있습니다.Dropdown list valuses를 유지하는 방법이 있습니까

보기에는보기가 렌더링되고 DTO가보기로 전달되기 전에 미리 작성된 일부 드롭 다운 목록이 있습니다 (일부 저장소 메소드 호출과 같은).

양식을 게시 할 때 텍스트 상자 및 다른 폼 컨트롤이 상태를 유지하는 것과 마찬가지로 드롭 다운의 값을 다시 가져 오지 않고 같은보기를 다시 렌더링하고 싶습니다.

분명히 양식을 게시 할 때 드롭 다운에 선택한 값만 게시됩니다.

가장 좋은 방법은 무엇입니까?

답변

0

두 가지 별도의 동작, 즉 초기에보기를 렌더링하는 데 사용되는 AcceptVerbs.Get 속성이있는 동작을 시도해보십시오. 다른 하나는 AcceptVerbs.Post라는 속성을 가지며이 액션은 POST 이벤트가 발생할 때 시작됩니다.

완료되면 게시 버전에서 View()을 간단하게 반환 할 수 있습니다. ASP.NET MVC 엔진은 전체보기를 다시 렌더링하도록 강요하지 않을만큼 똑똑합니다.

+1

나는 Get과 Post 시나리오를 위해 두 가지 serparate 메소드를 이미 가지고있다. 모든 값은 게시물에 유지되지만 드롭 다운은 유지됩니다. ("Category") 레이블 ("Category") 옵션 (Model.CategoriList, "Id", "CategoryName"). FirstOption ("Choose") 다음과 같이 mvc contrib 확장자를 사용합니다. .Selected (Model.CategoryId) %> – Ronnie

+1

음, 뷰를 다시 렌더링해야하는 경우 드롭 다운 목록 항목 집합을 가져와야합니다. 게시 될 때 SELECT 요소의 값에는 선택한 옵션의 값만 포함됩니다. 이를 쉽게하기 위해 액션 메소드에서 RedirectToAction을 사용하여 코드를 복제 할 필요가 없습니다. –

관련 문제