속성의 컬렉션에 바인딩 :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
있나요?
건배.
내가 숨겨진 입력 필드의 컬렉션을 저장하는 이유가 없었어요. 그 이유는 무엇입니까? – Elisabeth
숨겨진 입력 필드 채우기 외에도 실제로 도우미 Html.DropDownListFor()를 사용하여
실제 목적은'IEnumerable OptionList'에 대한 사용자 정의 서버 측 유효성 검사기를 작성하여 모델에 다시 바인딩 할 데이터가 필요하다는 것입니다. –