Hier erhalten versagt ist mein ControllerAjax-Aufruf eine Liste von Objekten aus Controller-Aktion Methode
[HttpPost]
public JsonResult UpdateCountryDropDownList(string ContinentId)
{
HotelContext H = new HotelContext();
int ContinentID = int.Parse(ContinentId);
List<Country> Co = H.Country.Where(x => x.ContinentId == ContinentID).ToList();
List<string> mylist = new List<string>(new string[] { "element1", "element2", "element3" });
return Json(new { ListResult = Co }, JsonRequestBehavior.AllowGet);
}
Wenn ich mylist
statt Co passieren es funktionieren
Und hier ist meine Ajax-Aufruf.
$(document).ready(function() {
$("#Name").change(function() {
var ContinentoId = $(this).val();
$.ajax({
type: "Post",
dataType: "json",
data: { ContinentId: ContinentoId },
url: '@Url.Action("UpdateCountryDropDownList","Home")',
success: function (result) {
alert("worked");
},
error: function (xhr, ajaxOptions, thrownError) {
alert("failed");
}
Es ist meine entsprechende Fehlermeldung geben, wenn Liste der Länder Objekt übergeben, aber der Erfolg, wenn Liste von Strings übergeben. Was läuft hier falsch?
Ich möchte nur eine Zeichenfolge übergeben, die Dropdown-Liste ist der ausgewählte Wert , um diesen Wert zu verwenden, um eine andere Dropdown-Liste mit Daten zu füllen. I verwendet console.log (Argumente) ich diese Fehlermeldung bekam http://s31.postimg.org/rzl4kecmz/2016_04_20_140543.png –
'500 (Internal Server Error)' bedeutet, dass Ihr Controller-Methode wirft und Ausnahme . Überprüfen Sie die Antwort auf der Registerkarte Netzwerk, um Details zu dem Fehler zu erhalten. Und 'ContinentId' ist ein' int', dann machen Sie den Parameter 'int' (nicht' string') –
Der von der Dropdown-Liste zurückgegebene Wert ist vom Stringtyp, ich übergebe ihn zur Funktion und wandle ihn später in int, auch ich fand dass ich json result containing objects zurückgeben kann, muss ich in jsonstring konvertieren mit JsonConvert.SerializeObject oder etw so, Iam versucht herauszufinden, wie es zu lösen –