Heim >Backend-Entwicklung >C++ >Wie rufe ich den ausgewählten Wert einer DropDownList in einem MVC-Controller ab?

Wie rufe ich den ausgewählten Wert einer DropDownList in einem MVC-Controller ab?

Barbara Streisand
Barbara StreisandOriginal
2025-01-14 11:44:14933Durchsuche

How to Retrieve a DropDownList's Selected Value in an MVC Controller?

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.

  1. Verbessern Sie Ihr Modell: Fügen Sie eine Eigenschaft zu Ihrem 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>
  1. Aktualisieren Sie Ihre Ansicht: Verwenden Sie 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>
  1. Verfeinerte Controller-Aktion: Jetzt wird der ausgewählte Wert automatisch in die MV.SelectedVendor-Eigenschaft:
  2. eingefügt
<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.

  1. Erweitern Sie das Modell: Fügen Sie eine Eigenschaft hinzu, um den Text des ausgewählten Anbieters zu speichern:
<code class="language-csharp">public class MobileViewModel 
{
    // ... existing properties ...
    public string SelectedVendor { get; set; }
    public string SelectedVendorText { get; set; }
}</code>
  1. jQuery hinzufügen: Fügen Sie jQuery in Ihre Ansicht ein und verwenden Sie es, um das ausgeblendete Feld zu aktualisieren, wenn sich die DropDownList-Auswahl ändert:
<code class="language-javascript">$(function () {
    $("#SelectedVendor").on("change", function () {
        $("#SelectedVendorText").val($(this).find(":selected").text());
    });
});</code>
  1. Verstecktes Feld zur Ansicht hinzufügen:
<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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn