2009-11-06 9 views
0

좋아, 나는 MVC에 매우 익숙하다. 그래서 우스꽝스럽지 않은 질문을한다면 나에게 책임이있다. MVC에서 뷰의 특정 컨트롤이 상태를 유지하지만 실제로 모델의 일부가 아닌 프로젝트를 개발하려고합니다. 여러 드롭 다운의 내용을 기반으로 페이지에 Asp.net 차트 및 xslt 격자를 표시하려고합니다. 이것들에 대한 데이터는 모델에서 나온 것이지만 dropdownmenu는 일정 할 것이므로 주어진 선택에 대한 게시물을 작성할 때 Dropdownlist 선택을 저장하고 Asp.net 2.0의 포스트 백에서와 같이 표시합니다.비 모델 컨트롤에 상태 유지 -

답변

0

당신은 당신이보기에 통과 한 선택 컨트롤을 이야기하고을 ViewData로를 팝업으로 자신의 SelectListItem에게 클래스를 구축해야하므로 매우 복잡 얻을 수있는 표준 HTML 헬퍼를 사용하는 경우 :

List<SelectListItem> items = new List<SelectListItem>(); 
    items.Add(new SelectListItem 
    { 
     Text = "Option1", 
     Value = "1", 
     Selected = (Request["dropdown"] == "Option1") 
    }); 
    items.Add(new SelectListItem 
    { 
     Text = "Option2", 
     Value = "2", 
     Selected = (Request["dropdown"] == "Option2") 
    }); 
    items.Add(new SelectListItem 
    { 
     Text = "Option3", 
     Value = "3", 
     Selected = (Request["dropdown"] == "Option3") 
    }); 

ViewData["items"]; 
다음과 같이 다음보기에이를 렌더링 할 수

:

<%= Html.DropdownList("Dropdown1", (IEnumerable<SelectListItem>)ViewData["items"]) 
+0

고마워, 그게 내가 찾고 있던 것 뿐이다. – Israfel

+0

고맙다. :) 내가 도울 수있어서 기뻐요! –

0

한 가지 방법은 내가 DropDownList로 변경 이벤트에 아약스 요청을하고 있던 과거에이 문제를 해결했습니다 (드롭과 형태를 직렬화 선택된 값 또는 쿼리 문자열의 매개 변수 전달). 서버 (컨트롤러 동작)는이 요청을 받아들이고 내용으로 부분보기를 반환합니다. 클라이언트는 해당 내용을 승인하고 일부 div에 배치합니다.

이렇게하면 전체 페이지를 다시로드하지 않기 때문에 선택한 항목에 대한 드롭 다운 목록을 생각할 필요가 없습니다.