【发布时间】:2015-05-26 02:12:13
【问题描述】:
是的,有很多帖子都有类似的问题。我尝试按照其中的答案进行操作,但我的 ajax 调用仍未到达控制器方法。
控制器(SalesController.cs):
[HttpGet]
public JsonResult fillVarietiesSelect(int species_id)
{
String[] alist = {"a","b","c"};
return Json(alist, JsonRequestBehavior.AllowGet);
}
javascript:
$('#species-select').on('change', function () {
var species_id = $('#species-select').val();
console.log("species id selected " + species_id);
alert("species id selected " + species_id);
$('#variety-select').empty();
$.ajax({
type: 'GET',
url: '@Url.Action("fillVarietiesSelect", "Sales")',
data: {species_id : species_id},
success: function (result) {
alert(result);
}
});
});
on change 事件正在触发,并弹出带有正确数据的警报。我在控制器方法处设置了断点,但执行似乎没有到达那里。
【问题讨论】:
-
您是否在控制台或请求网络选项卡中看到任何错误?
-
ASP.NET MVC 抛出这么多控制台错误!但最后是:
Empty string passed to getElementById(). jquery-1.10.2.js:188:0 GET XHR http://localhost:65244/@Url.Action(%22fillVarietiesSelect%22,%20%22Sales%22) -
网络面板显示
GET @Url.Action("fillVarietiesSelect", "Sales")的 404 错误 -
如果你让控制器操作方法返回字符串,那么它可以工作文件。当您返回 json 时,问题就来了。尝试返回 list
而不是 json -
尝试在Controller方法中将HttpGet改为HttpPost。此外,将 ajax 类型从 type: 'GET' 更改为 type:'POST'。
标签: javascript jquery ajax asp.net-mvc asp.net-ajax