2010-02-18 2 views
2

:ASP.NET MVC 2.0 - IList의 <T> 확인란이 처리하는 가장 좋은 방법은 무엇

class Option { 
    int id; 
    string name; 
} 

class QuoteItem 
{ 
    IList<Option> options; 
} 

class QuoteViewModel { 
    IList<Option> allOptions; 
    QuoteItem quoteItem; 
} 

는 기본적으로, 나는 allOptions에서 사용할 수있는 모든 옵션이 있습니다. 확인란을 선택했을 때(심지어는 id 인 경우)을 QuoteItem.options 목록에 넣으려면 확인란을 사용하고 싶습니다. 나는 어떻게 이것을 성취 할 것인가? 사실 IList<bool>일까요? 사실 후에 바인드합니까?

답변

2

난 당신이 모델을 사용하면 값이 선택한 옵션의 ID있을 것 IEnumerable<int> options, 바인딩 간단한 모델을 사용할 수 있습니다 상황에 목록

바인딩에 대해 필 Haack에서이 blog entry 살펴 보시기 바랍니다.

귀하의 의견보기는 다음과 같이 보일 것입니다 :

<form method="post" action="/QuoteItems/SetOptions"> 
     <input type="hidden" name="options" value="1" /> 
     <input type="hidden" name="options" value="4" /> 
     <input type="hidden" name="options" value="2" /> 
     <input type="hidden" name="options" value="8" /> 
     <input type="submit" /> 
    </form> 

숨겨진 입력은, 당신의 선택 optionId의의를 포함하는 각각의 숨겨진 입력에 대한 동일한 이름의 속성을 확인합니다. 기본 모델 바인더는이를 정수 목록에 바인딩 할 수 있습니다.

다음으로해야 할 일은 "모든 옵션"선택 컨트롤에서 항목을 선택했는지 여부에 따라 클라이언트 쪽에서 숨겨진 옵션 입력을 추가/제거하는 것입니다.

+0

해당 게시물은 상당히 오래된 것입니다. MVC 2.0을 사용 중입니다. –

+0

적어도 미리보기 1에서는 MVC 2.0에서 유효하다고 생각합니다. – Rik

관련 문제