Gibt es eine Möglichkeit, ein Modellobjekt aus der Ansicht in den Controller zu erhalten, ohne stark typisierte HTML-Helfer zu verwenden. Die Sicht verwendet die Entität Account
. Sie müssen jedoch das Formular bereitstellen und die Kontoentität der Variablen abrufen, die in einer foreach
-Schleife ausgeführt wird, die zum Generieren der Tabelle/des Gitternetzwerks verwendet wird. Die Information aus dem Dropdown wird für eine andere Entität verwendet, weshalb sie nicht stark typisiert ist.So rufen Sie mehrere Modelle aus der Einzelansicht ab
public class HomeController : Controller
{
// GET: Home
ModelContext model = new ModelContext();
[HttpGet]
public ActionResult Index()
{
return View(model.accounts.ToList());
}
[HttpPost]
public ActionResult Index(Account account,List<string> status,string name)
{
// return student object
return View();
}
}
Der Rest des Codes in der Ansicht wird auf einem foreach
Schleife eine HTML-table
in ein @HTML.BeginForm
<td>
@Html.DropDownList("status",
new SelectList(Enum.GetValues(typeof(ProjectName.Models.Code))),
"...",
new { @class = "form-control" })
</td>
<td>
@Html.TextArea("comment");
</td>
Ihre 'DropDownList()' Methode gibt nur einen einzigen Wert zurück, so dass der Parameter 'string status' sein muss (nicht' List status'). Aber nachdem Sie das gesagt haben, sollten Sie das Ansichtsmodell verwenden, das alle gewünschten Eigenschaften in der Ansicht enthält, damit Sie es stark binden, Validierung erhalten können. –
Es gibt ein Array von Eingaben zurück, weil es in einer foreach-Schleife läuft –
Dann generieren Sie Ungültige HTML für einen Start! Und Sie brauchen definitiv ein View-Modell, um das richtig zu handhaben. –