在
PHP中返回一些JSON我会做:
return json_encode(array(‘param1’=>’data1′,’param2’=>’data2’));
我如何以最简单的方式在C#ASP.NET MVC3中做同等的工作?
解决方法
您可以使用内置框架的
JavaScriptSerializer类.例如:
var serializer = new JavaScriptSerializer(); string json = serializer.Serialize(new { param1 = "data1",param2 = "data2" });
收益率:
{"param1":"data1","param2":"data2"}
但是,由于您谈到在ASP.NET MVC 3中返回JSON,因此已经有内置技术允许您直接返回对象并让底层基础结构负责将此对象序列化为JSON,以避免使用此类管道污染您的代码.
例如,在ASP.NET MVC 3中,您只需编写一个返回JsonResult的控制器操作:
public ActionResult Foo() { // it's an anonymous object but you could have used just any // view model as you like var model = new { param1 = "data1",param2 = "data2" }; return Json(model,JsonRequestBehavior.AllowGet); }
你不再需要担心管道.在ASP.NET MVC中,您具有返回操作结果的控制器操作,并将视图模型传递给这些操作结果.在JsonResult的情况下,它是底层基础结构,它将负责序列化您传递给JSON字符串的视图模型,并且除了正确设置Content-Type响应头到application / json之外.