Я видел много версий этого вопроса, но ответы всегда превращаются в «вам не нужно этого делать», а ответа никогда нет.
У меня есть список атрибутов о продукте, который я хочучтобы показать в неупорядоченном списке с флажками для выбора определенных атрибутов.
В моей модели:
public List<ProductAttribute> ProductAttributes {get;set;}
в моем Create.cshtml:
<div Class="ProductAttributes">
@Html.EditorFor(m => m.ProductAttributes, "ProductAttributeSelectorList")
</div>
В моем ProductAttributeSelectorList.cshtml:
@model List<Models.DisplayLocationAttribute>
<div class="AttributeSelector">
<ul>
@foreach (var item in Model)
{
<li>
@Html.EditorFor(_ => item, "EditLocationAttributeList")
</li>
}
</ul>
</div>
И, наконец, в моем EditLocationAttributeList.cshtml
@model Models.DisplayLocationAttribute
@Html.HiddenFor(m => m.Id)
@Html.CheckBoxFor(m => m.IsSelected)
<a href="#" alt="@Model.Description" >@Model.Name</a>
Все это прекрасно отображается на странице, я могу стилизовать его так, как хочу с помощью CSS, но когда отправляювозвращается, моя модель. Коллекция ProductctAttributes имеет значение null.
Я знаю, что могу связать непосредственно с EditLocationAttributeList, и он будет отображать и возвращать заполненную модель .ProductAttributes, если я использую это:
@Html.EditorFor(m => m.ProductAttributes, "EditLocationAttributeList")
но сейчас у меня нет неупорядоченного списка, который я хотел бы иметь.Я мог бы относиться к шаблону как к шаблону элемента, и в него добавлялись бы теги элементов строки, но, кажется, вонючий шаблон, который тесно связан с другим шаблоном.
Любые идеи?
Заранее спасибо,
Тал