У меня есть ViewModel, состоящий 2 списка:Сообщение ViewModel, который содержит несколько список
public class RandomViewmodel
{
public List<Model1> Model1 { get; set; }
public List<Model2> Model2 { get; set; }
}
Когда я получить доступ к этим ViewModel, чтобы создать вид, что работает отлично
@for (int i = 0; i < Model.Model1.Count(); i++)
{
x = i;
var item = Model.Model1.ElementAt(i);
<tr>
<td>
@Html.Editor("[" + i + "].Amount", new { htmlAttributes = new { @class = "form-control", @Value = item.Amount } })
</td>
</tr>
}
@for (int k=0; k < Model.Model2.Count; k++)
{
x = x + 1;
var bacc = Model.Model2.ElementAt(k);
@Html.Hidden("[" + k + "].ID", bacc.ID, new { htmlAttributes = new { @id = "[" + k + "].ID" } })
<tr style="font-weight:bold;">
<td style="padding-left: 25px;">
@(x+1) @bacc.name
</td>
<td class="adder_table_right" width="130px">
@Html.Editor("[" + k + "].MiscAmount1", new { htmlAttributes = new { @class = "form-control" } })
</td>
<td class="adder_table_right" width="130px">
@Html.Editor("[" + k + "].MiscAmount2", new { htmlAttributes = new { @class = "form-control" } })
</td>
</tr>
}
Вот мои действия контроллера :
[HttpPost]
public ActionResult Index(RandomViewModel vm)
Теперь, когда я ударил submit, я вижу, что объект viewmodel vm
получает NULL для обеих моделей.
Вашего производящая 'name' атрибуты, которые не имеют никакого отношения вообще к вашей модели - ее' @for (INT I = 0; я m.Model1 [i] Amount)} 'и аналогично для 2-го цикла. –
И обратитесь [этот ответ] (http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943), чтобы понять, как привязываться к коллекциям –
Атрибут name принадлежит вторая модель моей модели просмотра public List Model2 {get; задавать; } кроме того, этот данные в порядке прекрасный на мой взгляд. Но при отправке значения post action получает null для viewmodel –