ホームページ > バックエンド開発 > C++ > ASP.NET MVC $.post リクエストが jqGrid ドロップダウンに対して予期せずフォーマットされた文字列を返すのはなぜですか?

ASP.NET MVC $.post リクエストが jqGrid ドロップダウンに対して予期せずフォーマットされた文字列を返すのはなぜですか?

Mary-Kate Olsen
リリース: 2025-01-11 07:23:42
オリジナル
391 人が閲覧しました

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

ASP.NET MVC および jqGrid ドロップダウン メニューでの文字列フォーマットの問題

概要

jqGrid を使用してデータ編集用のドロップダウン メニューを動的に設定すると、追加の「未定義」項目がドロップダウン メニューに表示されます。この問題は、ドロップダウン メニューの値を入力するために使用される文字列形式に起因します。

問題分析

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>
ログイン後にコピー

解決策

方法 1: 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>
ログイン後にコピー

方法 2: 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート