У меня есть модель, которая может иметь переменное количество элементов в List<T>
Модель Связывание с переменным числом элементов в списке <T>
На мой взгляд, я тогда иметь следующее:
@using (Html.BeginForm())
{
int count = Model.Data.Filters.Count;
for(int i = 0; i < count; i++)
{
<div>
@Html.TextBox("filtervalue" + i)
@Html.DropDownList("filteroptions"+i,Model.Data.Filters[i].FilterOptions)
</div>
}
@Html.Hidden("LinkID", Url.RequestContext.RouteData.Values["id"])
}
Есть способ в моем контроллере, чтобы я мог настроить метод действия POST для привязки к модели с переменными элементами в ней?
Также как я смогу построить модель, чтобы справиться с этим?
Благодаря
Я видел это у Скотта Гензельмана, который может работать? http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx – Jon
Не будет ли необходимость иметь цикл в шаблоне редактора – Jon
@ Jon, да, вот как должна выглядеть ваша разметка, если вы хотите, чтобы стандартное связующее работать. Шаблоны редакторов будут генерировать такую правильную разметку. Не пытайтесь бороться с циклами и индексами. У вас будут трудные времена перед вами. Там не будет необходимости в цикле. Шаблон редактора будет автоматически вызываться для каждого элемента коллекции. ASP.NET MVC распознает, что фильтры - это коллекция и делает это за вас. Все работает на условностях. Уважайте соглашения, и ваши взгляды будут хорошенькими, и модельное связующее будет работать ... –