Ich habe ein Modell, das eine Liste eines benutzerdefinierten Typs enthält.Wie können Listenobjekte im Modell auf HttpPost beibehalten werden?
Ich möchte, dass die Daten von diesem Typ zurückgegeben werden, wenn ein Modell als HttpPost
den Controller aufgerufen wird.
Allerdings scheint es nicht zu tun, was ich will. Ich bin soweit, wo ich bin, indem ich Passing IEnumerable or list Model to Controller using HttpPost folge, aber ich habe ein Problem.
Mein Controller-Methode:
[HttpPost]
public ActionResult UpdateStock(int id, ProductModel model)
{
return View("UpdateStock", model);
}
nun die Ansicht wie dieser ist (getrimmt):
@using (Html.BeginForm())
{
<div>
<p>
<input type="submit" value="Save" />
</p>
@Html.HiddenFor(m => m.ProductNo)
<div class = "title">
@Html.LabelFor(m => m.ProductName)
@Html.EditorFor(m => m.ProductName)
</div>
@for (int i = 0; i < Model.Stock.Count; i++)
{
var item = Model.Stock[i];
<div class="editor-field">
<input type="text" name="Model.Stock[@i].Key"
value="@item.Key" />
</div>
<div class="editor-field">
<input type="text" name="Model.Stock[@i].Value"
value="@item.Value" />
</div>
}
}
Mein Problem ist, dass es auf die @Html.EditorFor()
und <input type=.../>
Tags scheinen nicht scheint spielen gut miteinander. Wenn ich es wie oben beschrieben habe, werden die ProductNo
und andere Eigenschaften, die @Html
Methoden verwenden, nicht an das Modell übergeben.
Jeder Rat sehr geschätzt.
Danke für die Antwort! Das funktioniert gut. – TZHX