Heim >Backend-Entwicklung >C++ >Warum gibt meine ASP.NET MVC $.post-Anfrage unerwartet formatierte Zeichenfolgen für jqGrid-Dropdowns zurück?
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.
jqGrid erfordert, dass das Dropdown-Menüwertformat wie folgt lautet:
<code>value: "FE:FedEx; IN:InTime; TN:TNT"</code>
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>
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>
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>
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>
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!