Ich habe eine Ansicht, Index, die zwei Formen hat, ein Suchformular und ein Formular speichern. Sie haben beide DropDownList-Steuerelemente, die an dieselbe Anwendungsdatenquelle gebunden sind, aber das ist das einzige, was sie gemeinsam haben.MVC - DropDownList-Wert nach POST-Befehl auf anderes Formular geändert
Wenn ich die Daten mit einer POST-Anfrage speichern, ändert sich die DDL im Suchformular so, dass sie denselben Wert erhält wie der im Sicherungsformular, was keine gewünschte Aktion ist. Hier ist meine abgespeckte Code:
@model Models.InfoVM
@using (Html.BeginForm("Search", "MyController")) {
@Html.DropDownList("searchCodes", (IEnumerable<SelectListItem>)Application["Codes"], "--Select--")
}
@using (Html.BeginForm("Save", "MyController")) {
@Html.DropDownListFor(m => m.Code, (IEnumerable<SelectListItem>)Application["Codes"], Model != null ? Model.Code : "--Select--")
}
Und mein Controller-Aktion:
[HttpPost]
public ActionResult Save([System.Web.Http.FromBody]InfoVM model) {
if (ModelState.IsValid) {
Repository.UpdateInfo(model);
}
return View("Index", model);
}
, warum dies geschieht und wie kann ich diese Verbindung zwischen den beiden brechen? Da ich die DDL des Suchformulars nicht an das Modell gebunden habe, das ich an die Seite gebunden habe, habe ich nicht erwartet, dass sich der Wert ändert.
Danke - mir war nicht bewusst, dass das das erwartete Verhalten war. – ScottSto