【发布时间】:2014-02-05 18:57:38
【问题描述】:
我有一个 ViewModel,里面有一个集合,例如:
public class CreateCampaignViewModel : ControlPanelViewModel
{
[RequiredField]
public string Name { get; set; }
public List<AdvertisementViewModel> Advertisements { get; set; }
...
}
在视图中,如果我像这样使用它:
@for (int i = 0; i < Model.Advertisements.Count; i++)
{
<fieldset style="z-index: 0;">
<legend>מודעה</legend>
<table style="width: 100%;">
<tr>
<td>
<label for="@Html.NameFor(m => m.Advertisements[i].Title)">כותרת הפרסומת</label></td>
<td>@Html.TextBoxFor(m => m.Advertisements[i].Title)</td>
</tr>
</table>
</fieldset>
}
一切都很好,当我发布表格时我可以看到列表......
但我想将广告编辑器嵌套在部分视图中,因此我的视图变为:
@for (int i = 0; i < Model.Advertisements.Count; i++)
{
Html.RenderPartial("AdvertisementEditor", Model.Advertisements[i]);
}
和我的部分:
@model Pushed.Models.AdvertisementViewModel
<fieldset style="z-index: 0;">
<legend>מודעה</legend>
<table style="width: 100%;">
<tr>
<td>
<label for="@Html.NameFor(m => m.Title)">כותרת הפרסומת</label></td>
<td>@Html.TextBoxFor(m => m.Title)</td>
</tr>
</table>
</fieldset>
我的问题是,现在,当我发布表单时,我没有得到每个广告的 TextBox 中的值。
这是合乎逻辑的,因为现在我的 <input> 标签没有“advertisement[1].Title”名称,而只有在我的包含模型中不存在的“Title”。
我怎样才能创建一个反映单个集合项目的部分内容,以便它可以正确地与表单一起重新发布?
【问题讨论】:
标签: asp.net-mvc collections indexing asp.net-mvc-partialview asp.net-mvc-viewmodel