Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Nilai Terpilih DropDownList dalam Pengawal MVC?
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.
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>
Html.DropDownListFor
untuk mengikat DropDownList kepada sifat SelectedVendor
baharu:<code class="language-html">@Html.DropDownListFor(m => m.SelectedVendor, Model.Vendor, "Select Manufacturer")</code>
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.
<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>
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!