【发布时间】:2015-07-12 17:21:16
【问题描述】:
我尝试向 asp.net mvc 控制器建立 ajax 请求,但它给了我内部服务器错误
// My Products Controller
[HttpPost]
public ActionResult FilterCategeory(int prodID)
{
var categs = new Categ() {PROD_ID=prodID }.Search();
return Json(categs);
}
//My ajax request
$("#categs").empty();
var prm = $("#prods").val();
$.ajax({
type: "POST",
url: '@Url.Action("FilterCategeory", "Products")',
contentType: "application/json; charset=utf-8",
data: {prodID: prm },
dataType: "json",
success: function (data)
{
alert('Success');
},
error: function () { alert('error');}
});
【问题讨论】:
-
内部服务器错误意味着您在控制器中抛出异常 - 调试您的代码!
string prodID和prodID.ToInt32()的意义是什么 - 如果它是int,则设置参数int prodID。如果JsonRequestBehavior.AllowGet是 POST 则毫无意义 -
我的控制器正确返回产品列表,但我认为与 (return Json(categs);) 它没有返回 json 对象但它返回 c# JsonResult Object 相关的问题,因此我认为 jquery无法解析返回的对象
-
它应该返回
objectRefer the docs -
什么是
categs? (展示你的模型) -
通常情况下,如果您的配置文件有任何问题,就会发生 HTTP 500 内部服务器错误。
标签: jquery asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 asp.net-ajax