Heim > Backend-Entwicklung > C++ > Warum gibt meine ASP.NET MVC $.post-Anfrage unerwartet formatierte Zeichenfolgen für jqGrid-Dropdowns zurück?

Warum gibt meine ASP.NET MVC $.post-Anfrage unerwartet formatierte Zeichenfolgen für jqGrid-Dropdowns zurück?

Mary-Kate Olsen
Freigeben: 2025-01-11 07:23:42
Original
426 Leute haben es durchsucht

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

Probleme bei der Zeichenfolgenformatierung mit ASP.NET MVC und dem jqGrid-Dropdown-Menü

Übersicht

Wenn Sie jqGrid verwenden, um das Dropdown-Menü für die Datenbearbeitung dynamisch zu füllen, werden zusätzliche „undefinierte“ Elemente im Dropdown-Menü angezeigt. Dieses Problem ist auf das Zeichenfolgenformat zurückzuführen, das zum Auffüllen der Dropdown-Menüwerte verwendet wird.

Problemanalyse

jqGrid erfordert, dass das Dropdown-Menüwertformat wie folgt lautet:

<code>value: "FE:FedEx; IN:InTime; TN:TNT"</code>
Nach dem Login kopieren

Der Code in der ASP.NET MVC-Aktion generiert jedoch die Zeichenfolge mithilfe von sb.ToString(), wodurch unnötige Anführungszeichen um den Wert eingefügt werden:

<code>value: ""ID: One;ID: Two;ID: Three;ID: Four;ID: Five;""</code>
Nach dem Login kopieren

Lösung

Methode 1: dataUrl verwenden

Um dieses Problem zu lösen, wird empfohlen, das dataUrl-Attribut von editoptions oder searchoptions in jqGrid zu verwenden. Dadurch können Sie eine URL angeben, die Ergebnisse im gewünschten Format zurückgibt:

<code>{ name: 'destinations', ditable: true, edittype:'select',
  editoptions: { dataUrl:'<%= Url.Action("GetDestinationList","Home") %>' }
}</code>
Nach dem Login kopieren

Im Controller sollte die GetDestinationList-Operation ein JSON-Array zurückgeben, das die Dropdown-Menüwerte enthält:

<code>public JsonResult GetDestinationList() {
    List<string> allDestinations = GetAllDestinations();
    Json(allDestinations, JsonRequestBehavior.AllowGet);
}</code>
Nach dem Login kopieren

Methode 2: Verwenden Sie die buildSelect-Funktion

Wenn dataUrl nicht verfügbar ist, können Sie die buildSelect-Funktion verwenden, um den Dropdown-Menüwert zu formatieren:

<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>
Nach dem Login kopieren

Diese Funktion empfängt die Antwortdaten vom Server und gibt eine Zeichenfolge im erforderlichen Format zurück.

Das obige ist der detaillierte Inhalt vonWarum gibt meine ASP.NET MVC $.post-Anfrage unerwartet formatierte Zeichenfolgen für jqGrid-Dropdowns zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage