財產的集合,從中集隱藏字段都被填充: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 2013-03-17 15:51:58
除了填充隱藏的輸入字段,我實際上是使用幫助器Html.DropDownListFor()填充
實際用途是我想爲'IEnumerable OptionList'編寫自定義的服務器端驗證器,所以我需要將數據綁定回模型。 –
2013-03-17 18:22:27