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?

Приветствия.

1 ответ

Используйте IList<IOption> или же IOption[] вместо:

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

а потом по вашему мнению:

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

@for (int i = 0; i < Model.Count; i++)
{    
    @Html.HiddenFor(x => x[i].Id)
    @Html.HiddenFor(x => x[i].Name)
}
Другие вопросы по тегам