Rumah > pembangunan bahagian belakang > C++ > Mengapa Permintaan ASP.NET MVC $.post Saya Mengembalikan Rentetan Diformat Secara Tidak Dijangka untuk Dropdown jqGrid?

Mengapa Permintaan ASP.NET MVC $.post Saya Mengembalikan Rentetan Diformat Secara Tidak Dijangka untuk Dropdown jqGrid?

Mary-Kate Olsen
Lepaskan: 2025-01-11 07:23:42
asal
426 orang telah melayarinya

Why Does My ASP.NET MVC $.post Request Return Unexpectedly Formatted Strings for jqGrid Dropdowns?

Isu pemformatan rentetan dengan menu lungsur turun ASP.NET MVC dan jqGrid

Ikhtisar

Apabila menggunakan jqGrid untuk mengisi menu lungsur turun secara dinamik untuk pengeditan data, item "tidak ditentukan" tambahan akan muncul dalam menu lungsur. Isu ini berpunca daripada format rentetan yang digunakan untuk mengisi nilai menu lungsur turun.

Analisis Masalah

jqGrid memerlukan format nilai menu lungsur adalah seperti berikut:

<code>value: "FE:FedEx; IN:InTime; TN:TNT"</code>
Salin selepas log masuk

Walau bagaimanapun, kod dalam tindakan ASP.NET MVC menjana rentetan menggunakan sb.ToString(), yang menambah petikan yang tidak perlu di sekitar nilai:

<code>value: ""ID: One;ID: Two;ID: Three;ID: Four;ID: Five;""</code>
Salin selepas log masuk

Penyelesaian

Kaedah 1: Gunakan dataUrl

Untuk menyelesaikan masalah ini, adalah disyorkan untuk menggunakan atribut dataUrl bagi pilihan edit atau pilihan carian dalam jqGrid. Ini membolehkan anda menentukan URL yang mengembalikan hasil dalam format yang diingini:

<code>{ name: 'destinations', ditable: true, edittype:'select',
  editoptions: { dataUrl:'<%= Url.Action("GetDestinationList","Home") %>' }
}</code>
Salin selepas log masuk

Dalam pengawal, operasi GetDestinationList harus mengembalikan tatasusunan JSON yang mengandungi nilai menu lungsur:

<code>public JsonResult GetDestinationList() {
    List<string> allDestinations = GetAllDestinations();
    Json(allDestinations, JsonRequestBehavior.AllowGet);
}</code>
Salin selepas log masuk

Kaedah 2: Gunakan fungsi buildSelect

Jika dataUrl tidak tersedia, anda boleh menggunakan fungsi buildSelect untuk memformat nilai menu lungsur:

<code class="language-javascript">                 buildSelect: function(data) {
                     var s = '';
                     if (response && response.length) {
                         for (var i = 0, l=response.length; i<l ; i++) {
                             var ri = response[i];
                             s += ''+ri+'';
                         }
                     }
                     return s + "";
                 }</code>
Salin selepas log masuk

Fungsi ini menerima data tindak balas daripada pelayan dan mengembalikan rentetan dalam format yang diperlukan.

Atas ialah kandungan terperinci Mengapa Permintaan ASP.NET MVC $.post Saya Mengembalikan Rentetan Diformat Secara Tidak Dijangka untuk Dropdown jqGrid?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan