2013-03-17 4 views
0

속성의 컬렉션에 바인딩 :MVC -> 채워되어야하는 숨겨진 필드의 집합있는 사용자 정의 유형

public abstract class MyPageView 
{   
    [UIHint("List")] 
    public IEnumerable<IOption> OptionList { get; set; } 
} 

명령을 그렇게 : 정의의

@Html.EditorFor(m => m.OptionList) 

구현 '목록 '템플릿 :

@model IEnumerable<RoomWanted.FlatShare.Services.ViewModels.Options.IOption> 

@for (int i = 0; i < Model.Count(); i++) 
{  
    @Html.HiddenFor(x => Model.ToList()[i].Id) 
    @Html.HiddenFor(x => Model.ToList()[i].Name) 
} 

내가 생성 무엇을 얻을 :

<input id="OptionList__0__Id" name="OptionList.[0].Id" type="hidden" value="1" /> 
<input id="OptionList__0__Name" name="OptionList.[0].Name" type="hidden" value="New York" /> 

무슨 모델이 제대로 작동 바인딩, 그래서 내가 생성하는 데 필요한 :

<input id="OptionList_0__Id" name="OptionList[0].Id" type="hidden" value="5"></input> 
<input id="OptionList_0__Name" name="OptionList[0].Name" type="hidden" value="New York"></input> 

점을 제거하는 방법에 대한 아이디어가 그래서 내가 OptionList[0].Id 대신 OptionList.[0].Id 있나요?

건배.

+0

내가 숨겨진 입력 필드의 컬렉션을 저장하는 이유가 없었어요. 그 이유는 무엇입니까? – Elisabeth

+0

숨겨진 입력 필드 채우기 외에도 실제로 도우미 Html.DropDownListFor()를 사용하여