MVC - Editando uma lista de objetos
Eu tenho o seguinte layout de classe no MVC:
public class ReportModel
{
List<SomeItem> items;
string value;
string anotherValue;
}
agora eu crio uma visão fortemente tipada no MVC desse tipo e faço campos de texto editáveis para editar cada valor, bem como usar um loop foreach para preencher campos de texto para editar os itens na lista de alguns itens.
Quando eu envio para o método httppost, os valores singulares retornam bem no objeto reportmodel, mas a lista não é retornada no objeto. Como isso deve ser feito?
Quando eu digo httppost estou me referindo ao método que MVC está postando de volta para
[HttpPost]
public ActionResult EditReport(ReportModel report)
{
// Save the report in here after the update on the UI side
}
Exibir código para postar a lista de alguns itens
if (Model.items != null && Model.items.Count > 0)
{
for (int i = 0; i < Model.items.Count; i++)
{
<div class="editrow">
<div class="edititem">
<div class="editor-label">
@Html.LabelFor(m => m.items.ElementAt(i).propertyOne)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.items.ElementAt(i).propertyOne)
@Html.ValidationMessageFor(m => m.items.ElementAt(i).propertyOne)
</div>
</div>
<div class="edititem">
<div class="editor-label">
@Html.LabelFor(m => m.items.ElementAt(i).propertyTwo)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.items.ElementAt(i).propertyTwo)
@Html.ValidationMessageFor(m => m.items.ElementAt(i).propertyTwo)
</div>
</div>
<div class="edititem">
<div class="editor-label">
@Html.LabelFor(m => m.items.ElementAt(i).propertyThree)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.items.ElementAt(i).propertyThree)
@Html.ValidationMessageFor(m => m.items.ElementAt(i).propertyThree)
</div>
</div>
</div>
}
}