首頁 > 後端開發 > C++ > 為什麼我的 ASP.NET MVC $.post 請求傳回 jqGrid 下拉清單的意外格式化字串?

為什麼我的 ASP.NET MVC $.post 請求傳回 jqGrid 下拉清單的意外格式化字串?

Mary-Kate Olsen
發布: 2025-01-11 07:23:42
原創
426 人瀏覽過

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

ASP.NET MVC與jqGrid下拉選單的字串格式化問題

概述

使用jqGrid動態填入下拉式選單進行資料編輯時,下拉式選單中會出現額外的「undefined」項目。此問題源自於用於填入下拉式選單值的字串格式。

問題分析

jqGrid要求下拉選單值格式如下:

<code>value: "FE:FedEx; IN:InTime; TN:TNT"</code>
登入後複製

但是,ASP.NET MVC操作中的程式碼使用sb.ToString()產生字串,這會在值周圍添加不必要的引號:

<code>value: ""ID: One;ID: Two;ID: Three;ID: Four;ID: Five;""</code>
登入後複製

解決方法

方法一:使用dataUrl

為了解決這個問題,建議使用jqGrid中editoptions或searchoptions的dataUrl屬性。這允許您指定傳回所需格式結果的URL:

<code>{ name: 'destinations', ditable: true, edittype:'select',
  editoptions: { dataUrl:'<%= Url.Action("GetDestinationList","Home") %>' }
}</code>
登入後複製

在控制器中,GetDestinationList操作應傳回包含下拉式選單值的JSON陣列:

<code>public JsonResult GetDestinationList() {
    List<string> allDestinations = GetAllDestinations();
    Json(allDestinations, JsonRequestBehavior.AllowGet);
}</code>
登入後複製

方法二:使用buildSelect函數

如果無法使用dataUrl,可以使用buildSelect函數來格式化下拉式選單值:

<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>
登入後複製

此函數接收來自伺服器的回應數據,並傳回所需格式的字串。

以上是為什麼我的 ASP.NET MVC $.post 請求傳回 jqGrid 下拉清單的意外格式化字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板