我有这个javascript代码:
$(document).ready(function(){
$("#EstadoId").change(function(){
listaCidade($(this).val());
});
});
function listaCidade(uf) {
$.getJSON("@Url.Action("ListaCidade")/" + uf, listaCidadeCallBack);
}
function listaCidadeCallBack() {
alert('sucesso');
}
一切正常。。。getJSON正在调用我的操作"ListaCidade",但它并没有调用我的"listaCidadeCallBack"。
行动的结果是
public ActionResult ListaCidade(int id)
{
var cidades = from c in ctx.Cidades
where c.Estado.ID == id
select c;
return Json(cidades);
}
您的问题可能是您可能无法从api调用中获得预期的结果。
将fail
事件添加到getJSON
调用中,它会告诉您哪里出了问题。
$.getJSON("@Url.Action("ListaCidade")/" + uf, listaCidadeCallBack)
.fail(function( jqxhr, textStatus, error ) {
console.log(error);
var err = textStatus + ", " + error;
alert("Request Failed: " + err );
});
EDIT:根据注释,您的GET操作方法在发送JSON数据时遇到问题。
解决方案是,当您的操作方法是GET
类型时,您需要传递JsonRequestBehavior.AllowGet
作为Json方法的第二个参数。
public ActionResult ListaCidade()
{
var cidades = from c in ctx.Cidades
where c.Estado.ID == id
select c;
return Json(cidades , JsonRequestBehavior.AllowGet);
}
对于HttpPost
操作方法,您可以在不使用第二个参数的情况下使用旧代码。