У меня есть 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>
}
все хорошо, и я вижу список, когда отправляю форму...
но я хочу вложить AdvertisementEditor в частичное представление, поэтому мое представление становится:
@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>
Моя проблема в том, что теперь, когда я отправляю форму, я не получаю значения в текстовом поле для каждого объявления.
Это логично, потому что теперь мои теги <input>
не имеют имени «advertisement[1].Title», а только «Title», которого нет в моей содержащей модели.
как я могу создать партиал, отражающий один элемент коллекции с его неприличиями, чтобы он правильно размещался в форме?