2016-04-14 8 views
4

Ich habe diese beiden select s auf einen Blick:Ajax-Request für asp.net Mvc Controller 500 zurückkehr - Interner Serverfehler

<select class="input-sm form-control input-s-sm inline" onchange="carregarCidades()" id="comboEstado"> 
    ... 
</select> 

<select class="input-sm form-control input-s-sm inline" id="comboCidade"> 
    ... 
</select> 

Die erste stellt einen Zustand dar, und wenn ich es wählen Ich möchte das auszuführen carregarCidades Funktion, um die Städte dieser Statistik zu laden und sie in die andere Auswahl zu laden. Hier ist die Funktion:

function carregarCidades() { 
    var url = "@Url.Action("CarregarCidades", "Usuario")"; 

    var estado = $("#comboEstado").find(":selected").text(); 

    $.get(url, { pEstado: estado }, function (cidades) { 
     $("#comboCidade").html(""); // clear before appending new list 
     $.each(cidade, function (i, cidade) { 
      $("#comboCidade").append(
       $('<option></option>').val(cidade.id_cidade).html(cidade.cidade)); 
     }); 
    }); 
} 

Nun, hier ist die CarregarCidades Aktion im UsuarioController:

public ActionResult CarregarCidades(string pEstado) 
{ 
    string cCidades = oVFP.BuscaCidade(pEstado); 

    DataSet dsC = new DataSet(); 
    dsC.ReadXml(new StringReader(cCidades)); 

    JsonResult result = Json(dsC.Tables["curretorno"]); 
    return result; 
} 

Ich bin Debuggen der Aktion und scheinbar alles in Ordnung ist:

enter image description here enter image description here

Aber nachdem die Aktion das Json-Ergebnis zurückgibt, wird die Callback-Funktion nicht in der jQuery c aufgerufen Ode und ich habe einen 500 internen Serverfehler in meiner Konsole.

+0

Sie sagen, die Server-Methode funktioniert gut. Woher bekommst du den 500 Fehler? Beim Aufruf der gleichen Aktionsmethode? Welche anderen Informationen erhalten Sie auf der Registerkarte Antwort der entsprechenden Anfrage? – Shyju

+0

Ich erhalte den Fehler in der Chrome-Konsole und sage, dass der Fehler in meiner Ajax-Anfrage aufgetreten ist. – gabsferreira

+0

Ehsan Antwort wird es beheben. – Shyju

Antwort

1

Ich würde zuerst sicherstellen, dass Ihre Methode das Attribut [WebMethod] über seiner Deklaration hat.

Das zweite, was ich vorschlagen würde Ihre Json wie folgt zurückgibt:

return Json(result, JsonRequestBehavior.AllowGet); 

Generell ist es eines oder beide dieser Probleme ist, dass Sie einen 500-Fehler gibt.

Edit:

es als [WebMethod] Deklarieren nicht notwendig sein.

+1

Es ist mvc wir brauchen kein webmethod Attribut –

Verwandte Themen