我尝试获取对象列表并将其作为JsonResult
返回给AJAX调用。我试过这个:
List<object> list = getList();
JavaScriptSerializer jss = new JavaScriptSerializer();
JsonResult json = jss.Serialize(list);
jss.Serialize
将一个对象作为其参数,因此这显然不起作用。有没有办法可以传入一个对象列表并获得我需要的东西?
答案 0 :(得分:0)
以下示例显示如何返回的实例
来自动作方法的JsonResult
类。返回的对象
指定允许GET
请求。
public ActionResult Movies()
{
var movies = new List<object>();
movies.Add(new { Title = "Ghostbusters", Genre = "Comedy", Year = 1984 );
movies.Add(new { Title = "Gone with Wind", Genre = "Drama", Year = 1939 );
movies.Add(new { Title = "Star Wars", Genre = "Science Fiction", Year = 1977 });
return Json(movies, JsonRequestBehavior.AllowGet);
}
来源:https://msdn.microsoft.com/en-us/library/system.web.mvc.jsonresult(v=vs.118).aspx
答案 1 :(得分:0)
MVC Controller
类有一个Json
方法,用于将对象转换为JsonResult
。您无需使用JavaScriptSerializer
手动序列化对象。只需将对象传递给Json
方法,它就会在执行结果时为您序列化。如果您的控制器方法是GET
方法,那么您还需要将JsonRequestBehavior.AllowGet
作为Json
方法的第二个参数传递,否则会引发错误。
[HttpGet]
public ActionResult GetMyList()
{
List<object> list = getList();
return Json(list, JsonRequestBehavior.AllowGet);
}