2016-04-14 31 views
4

Ben bir görünümde bu iki select s vardır:Ajax talebi - iç sunucu hatası

<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> 

öncelikle bir Devleti temsil eder ve bunu seçtiğimde yürütmek istiyorum carregarCidades, bu statünün şehirlerini yüklemek için işlev görür ve bunları diğer seçime yükler. İşte fonksiyonudur:

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; 
} 

ben eylemi ayıklama ediyorum ve görünüşe herşey yolunda: Şimdi

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)); 
     }); 
    }); 
} 

, burada UsuarioController içinde CarregarCidades eylemdir

enter image description here enter image description here

Ancak, Eylem Json sonucunu döndürdükten sonra, jquery c üzerinde geri çağrı funcion çağrılmaz. Ode ve konsolumda 500 dahili sunucu hatası var.

+0

Sunucu yönteminin iyi çalıştığını söylüyorsunuz. 500 hatası nereden alıyorsunuz? Aynı işlem yöntemini çağırırken? İlgili isteğin Yanıt sekmesinde hangi diğer bilgileri alırsınız? – Shyju

+0

Hata, ajax isteğimde gerçekleşiyor diyerek Chrome konsolunda hata alıyorum. – gabsferreira

+0

Ehsan'ın cevabı bunu düzeltecek. – Shyju

cevap

1

İlk önce, yönteminizin bildiriminin üzerinde [WebMethod] özniteliğine sahip olduğundan emin olurum. Ben öneririm

ikinci şey bu gibi Json dönüyor:

return Json(result, JsonRequestBehavior.AllowGet); 

Genellikle bir ya da size 500 hata veriyor bu sorunların hem de.

Düzenleme:

bir [WebMethod] olarak bildirilmesi gerekli olmayabilir.

+1

Bu mvc biz webmethod özniteliğine ihtiyacımız yok –