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
Freigeben: 2025-01-14 11:44:14
Original
944 Leute haben es durchsucht

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:

[HttpPost]
public ActionResult ShowAllMobileDetails(MobileViewModel MV)
{           
   string strDDLValue = Request.Form["ddlVendor"].ToString(); // Using FormCollection
   return View(MV);
}
Nach dem Login kopieren

Modell:

public class MobileViewModel 
{
    public List<tbInsertMobile> MobileList;
    public SelectList Vendor { get; set; }
}
Nach dem Login kopieren

Ansicht (teilweise):

<table>
    <tr>
        <td>Mobile Manufacturer</td>
        <td>@Html.DropDownList("ddlVendor", Model.Vendor, "Select Manufacturer")</td>
    </tr>
</table>
Nach dem Login kopieren

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:
public class MobileViewModel 
{
    // ... existing properties ...
    public string SelectedVendor { get; set; }
}
Nach dem Login kopieren
  1. Aktualisieren Sie Ihre Ansicht: Verwenden Sie Html.DropDownListFor, um die DropDownList an die neue SelectedVendor-Eigenschaft zu binden:
@Html.DropDownListFor(m => m.SelectedVendor, Model.Vendor, "Select Manufacturer")
Nach dem Login kopieren
  1. Verfeinerte Controller-Aktion: Jetzt wird der ausgewählte Wert automatisch in die MV.SelectedVendor-Eigenschaft:
  2. eingefügt
[HttpPost]
public ActionResult ShowAllMobileDetails(MobileViewModel MV)
{           
   string strDDLValue = MV.SelectedVendor;
   return View(MV);
}
Nach dem Login kopieren

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:
public class MobileViewModel 
{
    // ... existing properties ...
    public string SelectedVendor { get; set; }
    public string SelectedVendorText { get; set; }
}
Nach dem Login kopieren
  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:
$(function () {
    $("#SelectedVendor").on("change", function () {
        $("#SelectedVendorText").val($(this).find(":selected").text());
    });
});
Nach dem Login kopieren
  1. Verstecktes Feld zur Ansicht hinzufügen:
@Html.DropDownListFor(m => m.SelectedVendor, Model.Vendor, "Select Manufacturer")
@Html.HiddenFor(m => m.SelectedVendorText)
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage