So habe ich ein Formular, das ich versuche einzureichen, und ich kann entweder die Liste oder das Modell zu binden, aber nicht beide zur gleichen Zeit. Ich vermute, dass es mit dem Modellbinder zu tun hat.Listenbindung mit Modelldaten
HTML
@using (Html.BeginForm("Index", "Home", FormMethod.Post)){
@Html.AntiForgeryToken()
<div class="TransferHeader">
<div>
@Html.LabelFor(model => model.tranRequestedBy)
@Html.EditorFor(model => model.tranRequestedBy, new { @Name = "h.tranRequestedBy" })
</div>
<div>
@Html.LabelFor(model => model.tranNotes)
@Html.EditorFor(model => model.tranNotes, new { @Name = "h.tranNotes" })
</div>
<input name="h.TransfersDetail.Index" id="detIndex" type="hidden" value="c3a3f7dd-41bb-4b95-b2a6-ab5125868adb">
<input name="h.TransfersDetail[c3a3f7dd-41bb-4b95-b2a6-ab5125868adb].detToolCode" id="detToolCode" type="hidden" value="1234">
</div>
}
-Controller
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(TransfersHeader h)
{
return View();
}
Model-Klasse:
public virtual ICollection<TransfersDetail> TransfersDetail { get; set; }
public string tranRequestedBy { get; set; }
public string tranNotes { get; set; }
Die beiden unteren Eingänge von einem AJAX-Aufruf zu einem Add-Methode erzeugt wurden, was passiert ist, wenn sie sind nicht vorhanden die beiden HTML-Helfer-Editoren werden in das Modell kommen, aber wenn sie nur die Übertragung existieren Detailliste wird angezeigt. Kann ich irgendetwas tun, um sicherzustellen, dass alle Daten in das Modell gelangen?
Danke, das hat funktioniert, ich habe das Listenelement nach der Erwartung des Controllers benannt h. – Herrozerro