问题描述
我有这种控制器的方法:
I have this controller method:
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脚本:
On the client side, have this jQuery script:
$("#radio1").click(function () {
$.ajax({
url: "/Home/List",
dataType: "json",
data: { number: '1' },
success: function (data) { alert(data) },
error: function (xhr) { alert(xhr.status) }
});
});
我总是得到一个错误code 500有什么问题吗?
I always get an error code 500. What's the problem?
感谢您
推荐答案
如果你看到的实际响应,它可能会说
If you saw the actual response, it would probably say
该请求已被阻止,因为
敏感信息可能是
透露给第三方网站
当这是一个GET请求使用。至
允许GET请求,集
JsonRequestBehavior到AllowGet。
您需要使用重载的的Json
构造函数包括 JsonRequestBehavior
的 JsonRequestBehavior.AllowGet
如:
You'll need to use the overloaded Json
constructor to include a JsonRequestBehavior
of JsonRequestBehavior.AllowGet
such as:
return Json(list, JsonRequestBehavior.AllowGet);
下面是它的外观在你的榜样code(注意,这也会改变你的 INT
s到字符串
s或否则你会得到另一个错误)。
Here's how it looks in your example code (note this also changes your int
s to string
s or else you'd get another error).
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);
}
这篇关于ASP.NET MVC JsonResult返回500的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!