Heim >Backend-Entwicklung >C++ >Wie rufe ich den ausgewählten Wert einer DropDownList in einem MVC-Controller ab?
Ausgewählten DropDownList-Wert in Ihrem MVC-Controller abrufen
Diese Anleitung befasst sich mit der häufigen Herausforderung des Zugriffs auf den ausgewählten Wert aus einer DropDownList innerhalb eines MVC-Controllers.
Das Problem: Effiziente Erfassung der Benutzerauswahl aus einer DropDownList in Ihrer MVC-Controller-Aktion.
Controller-Aktion (erster Ansatz):
Der folgende Code demonstriert einen ersten Versuch mit FormCollection
:
<code class="language-csharp">[HttpPost] public ActionResult ShowAllMobileDetails(MobileViewModel MV) { string strDDLValue = Request.Form["ddlVendor"].ToString(); // Using FormCollection return View(MV); }</code>
Modell:
<code class="language-csharp">public class MobileViewModel { public List<tbInsertMobile> MobileList; public SelectList Vendor { get; set; } }</code>
Ansicht (teilweise):
<code class="language-html"><table> <tr> <td>Mobile Manufacturer</td> <td>@Html.DropDownList("ddlVendor", Model.Vendor, "Select Manufacturer")</td> </tr> </table></code>
Lösungen:
Methode 1: Verwendung von Request.Form
oder FormCollection
(weniger empfohlen):
Obwohl es funktionsfähig ist, wird der direkte Zugriff auf Request.Form
im Allgemeinen weniger bevorzugt, da es auf String-Manipulation angewiesen ist und es an Typsicherheit mangelt. Der obige Code demonstriert diese Methode bereits.
Methode 2: Modellbindung (empfohlen):
Dieser Ansatz nutzt die Modellbindungsfunktionen von MVC für eine sauberere, wartbarere Lösung.
MobileViewModel
hinzu, um speziell den Wert des ausgewählten Anbieters zu speichern:<code class="language-csharp">public class MobileViewModel { // ... existing properties ... public string SelectedVendor { get; set; } }</code>
Html.DropDownListFor
, um die DropDownList an die neue SelectedVendor
-Eigenschaft zu binden:<code class="language-html">@Html.DropDownListFor(m => m.SelectedVendor, Model.Vendor, "Select Manufacturer")</code>
MV.SelectedVendor
-Eigenschaft:<code class="language-csharp">[HttpPost] public ActionResult ShowAllMobileDetails(MobileViewModel MV) { string strDDLValue = MV.SelectedVendor; return View(MV); }</code>
Methode 3: Sowohl Wert als auch Text abrufen (erweitert):
Um sowohl den ausgewählten Wert als auchden entsprechenden Text zu erhalten, benötigen Sie ein verstecktes Feld und etwas jQuery.
<code class="language-csharp">public class MobileViewModel { // ... existing properties ... public string SelectedVendor { get; set; } public string SelectedVendorText { get; set; } }</code>
<code class="language-javascript">$(function () { $("#SelectedVendor").on("change", function () { $("#SelectedVendorText").val($(this).find(":selected").text()); }); });</code>
<code class="language-html">@Html.DropDownListFor(m => m.SelectedVendor, Model.Vendor, "Select Manufacturer") @Html.HiddenFor(m => m.SelectedVendorText)</code>
Jetzt sind sowohl MV.SelectedVendor
(Wert) als auch MV.SelectedVendorText
(Text) in Ihrem Controller verfügbar. Denken Sie daran, die jQuery-Bibliothek in Ihre Ansicht einzubeziehen. Dies ist die robusteste Lösung.
Denken Sie daran, die Lösung auszuwählen, die Ihren Anforderungen und Ihrem Programmierstil am besten entspricht. Die Modellbindung (Methode 2 und 3) wird aufgrund ihrer Klarheit und Wartbarkeit im Allgemeinen empfohlen.
Das obige ist der detaillierte Inhalt vonWie rufe ich den ausgewählten Wert einer DropDownList in einem MVC-Controller ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!