2014-11-17 2 views
0

에 사전에 내가하는 ASP.NET MVC에서 다음 뷰 모델이 있습니다바인드 입력 뷰 모델

public CategoryNewViewModel { 
    public Int32 Type { get ; set; } 
    public IDictionary<String, String> Descriptions { get; set; } 
} 

설명] 키가 언어 및 설명 값은 텍스트입니다. 나는 N 입력, 각 언어를 렌더링 할 필요가보기에

...

양식이 제출되면 설명 속성이 될 것입니다 :

"en", "The description in english" 
"pt", "A descrição em português" 
"fr", "La description en français" 

하나의 문제는 내가 아니다이다 보기에 내가 얼마나 많은 인풋을 가지고 있는지를 확인하십시오.

누구나이 바인딩이 가능한지 압니까?

답변

0

제가 바인딩 사전의 좋은 방법을 찾은 것 같아요 그리고 그것은 실제로 당신이 당신의 상황에서 필요로하는 것입니다.

ASP.NET MVC 4에서 기본 모델 바인더는 일반적인 사전 인덱서 구문 property[key]을 사용하여 사전을 바인딩합니다. 당신이 당신의 모델에 Dictionary<string, string>이있는 경우

, 이제 직접 다음과 같은 마크 업으로 다시 바인딩 할 수 있습니다 : 예를 들어

<input type="hidden" name="MyDictionary[MyKey]" value="MyValue" /> 

, 당신의 부분 집합을 선택하는 체크 박스 세트를 사용하려는 경우

) =이 question에서

@foreach(var kvp in Model.MyDictionary) 
{ 
    <input type="checkbox" name="@("MyDictionary[" + kvp.Key + "]")" 
     value="@kvp.Value" /> 
} 

도난 : 사전의 요소와 동일한 속성을 다시 바인딩, 당신은 다음과 같은 작업을 수행 할 수