2013-03-17 124 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 2013-03-17 15:51:58

+0

除了填充隐藏的输入字段,我实际上是使用帮助器Html.DropDownListFor()填充