如何在ASP.NET MVC 4中从控制器返回JSON对象
本文关键字:控制器 返回 JSON 对象 ASP NET MVC | 更新日期: 2023-09-27 17:59:44
当我console log
我的response
时,我得到的只是HTML
。如何获取player object
?
Site.JS:
$(".AddToPreRank").click(function (e) {
e.preventDefault();
//grab id
var id = $(this).get(0).id;
//append player to prerank list
$.ajax({
url: '@Url.Action("AddToPreRank")',
type: 'POST',
data: { id : id },
success: function (response) {
console.log(response);
alert("hello");
}
});
});
LeagueController.cs:
[HttpPost]
public ActionResult AddToPreRank(int id){
Player player= new Player();
player = db.Players.Find(id);
return Json(player);
}
您正在调用一个ActionResult方法,它将返回比您想要的JSON多得多的内容。
将代码更改为
public JsonResult AddToPreRank(int id){
Player player= new Player();
player = db.Players.Find(id);
return Json(player);
}
您可能还需要确认在JavaScript文件中提取的URL是正确的。参数传递不正确,或者Razor无法正确识别@sescape字符。
尝试使用$.post将返回默认为JSON。
$.post('@Url.Action("AddToPreRank")', data: { id : id },
function (response) {
console.log(response);
alert("hello");
}
});
此外,返回JsonResult而不是ActionResult,并将player作为匿名类型返回。
[HttpPost]
public ActionResult AddToPreRank(int id){
Player player= new Player();
player = db.Players.Find(id);
return Json(new {player});
}
您可以在web环境中使用System.Runtime.Serialization.Json,也可以使用Newtonsoft.Json(http://json.codeplex.com/)在winform环境中解决您的问题。