Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Nilai Terpilih DropDownList dalam Pengawal MVC?

Bagaimana untuk Mendapatkan Nilai Terpilih DropDownList dalam Pengawal MVC?

Barbara Streisand
Barbara Streisandasal
2025-01-14 11:44:14882semak imbas

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

Mendapatkan kembali Nilai DropDownList yang Dipilih dalam Pengawal MVC Anda

Panduan ini menangani cabaran biasa untuk mengakses nilai yang dipilih daripada DropDownList dalam pengawal MVC.

Masalahnya: Menangkap pilihan pengguna dengan cekap daripada DropDownList dalam tindakan pengawal MVC anda.

Tindakan Pengawal (Pendekatan Awal):

Kod berikut menunjukkan percubaan awal menggunakan FormCollection:

<code class="language-csharp">[HttpPost]
public ActionResult ShowAllMobileDetails(MobileViewModel MV)
{           
   string strDDLValue = Request.Form["ddlVendor"].ToString(); // Using FormCollection
   return View(MV);
}</code>

Model:

<code class="language-csharp">public class MobileViewModel 
{
    public List<tbInsertMobile> MobileList;
    public SelectList Vendor { get; set; }
}</code>

Paparan (Sebahagian):

<code class="language-html"><table>
    <tr>
        <td>Mobile Manufacturer</td>
        <td>@Html.DropDownList("ddlVendor", Model.Vendor, "Select Manufacturer")</td>
    </tr>
</table></code>

Penyelesaian:

Kaedah 1: Menggunakan Request.Form atau FormCollection (Kurang Disyorkan):

Walaupun berfungsi, mengakses terus Request.Form secara amnya kurang diutamakan kerana pergantungannya pada manipulasi rentetan dan kekurangan keselamatan jenis. Kod di atas sudah menunjukkan kaedah ini.

Kaedah 2: Pengikatan Model (Disyorkan):

Pendekatan ini memanfaatkan keupayaan pengikatan model MVC untuk penyelesaian yang lebih bersih dan boleh diselenggara.

  1. Tingkatkan Model Anda: Tambahkan harta pada MobileViewModel anda untuk secara khusus memegang nilai vendor yang dipilih:
<code class="language-csharp">public class MobileViewModel 
{
    // ... existing properties ...
    public string SelectedVendor { get; set; }
}</code>
  1. Kemas kini Pandangan Anda: Gunakan Html.DropDownListFor untuk mengikat DropDownList kepada sifat SelectedVendor baharu:
<code class="language-html">@Html.DropDownListFor(m => m.SelectedVendor, Model.Vendor, "Select Manufacturer")</code>
  1. Tindakan Pengawal Ditapis: Kini, nilai yang dipilih akan diisi secara automatik dalam harta MV.SelectedVendor:
<code class="language-csharp">[HttpPost]
public ActionResult ShowAllMobileDetails(MobileViewModel MV)
{           
   string strDDLValue = MV.SelectedVendor;
   return View(MV);
}</code>

Kaedah 3: Mendapatkan Kedua-dua Nilai dan Teks (Lanjutan):

Untuk mendapatkan kedua-dua nilai yang dipilih dan teks yang sepadan, anda memerlukan medan tersembunyi dan beberapa jQuery.

  1. Lanjutkan Model: Tambahkan sifat untuk menyimpan teks vendor yang dipilih:
<code class="language-csharp">public class MobileViewModel 
{
    // ... existing properties ...
    public string SelectedVendor { get; set; }
    public string SelectedVendorText { get; set; }
}</code>
  1. Tambah jQuery: Sertakan jQuery dalam paparan anda dan gunakannya untuk mengemas kini medan tersembunyi apabila pilihan DropDownList berubah:
<code class="language-javascript">$(function () {
    $("#SelectedVendor").on("change", function () {
        $("#SelectedVendorText").val($(this).find(":selected").text());
    });
});</code>
  1. Tambah Medan Tersembunyi pada Paparan:
<code class="language-html">@Html.DropDownListFor(m => m.SelectedVendor, Model.Vendor, "Select Manufacturer")
@Html.HiddenFor(m => m.SelectedVendorText)</code>

Kini, kedua-dua MV.SelectedVendor (nilai) dan MV.SelectedVendorText (teks) akan tersedia dalam pengawal anda. Ingat untuk memasukkan perpustakaan jQuery dalam paparan anda. Ini adalah penyelesaian yang paling mantap.

Ingat untuk memilih penyelesaian yang paling sesuai dengan keperluan dan gaya pengekodan anda. Pengikatan model (Kaedah 2 dan 3) biasanya disyorkan untuk kejelasan dan kebolehselenggaraannya.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Terpilih DropDownList dalam Pengawal MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn