我有这个 Controller 方法:
public JsonResult List(int number) {
var list = new Dictionary <int, string> ();
list.Add(1, "one");
list.Add(2, "two");
list.Add(3, "three");
var q = (from h in list where h.Key == number select new {
key = h.Key,
value = h.Value
});
return Json(list);
}
在客户端,具有以下jQuery脚本:
$("#radio1").click(function() {
$.ajax({
url: "/Home/List",
dataType: "json",
data: {
number: '1'
},
success: function(data) {
alert(data)
},
error: function(xhr) {
alert(xhr.status)
}
});
});
我总是收到错误代码500。这是什么问题?
谢谢
最佳答案
如果您看到实际的响应,它可能会说
您需要使用重载的Json
构造函数来包括JsonRequestBehavior
的JsonRequestBehavior.AllowGet
,例如:
return Json(list, JsonRequestBehavior.AllowGet);
这是示例代码中的外观(请注意,这也会将
int
更改为string
,否则会出现另一个错误)。public JsonResult List(int number) {
var list = new Dictionary<string, string>();
list.Add("1", "one");
list.Add("2", "two");
list.Add("3", "three");
var q = (from h in list
where h.Key == number.ToString()
select new {
key = h.Key,
value = h.Value
});
return Json(list, JsonRequestBehavior.AllowGet);
}