Trong PHP để trở lại một số JSON tôi sẽ làm:Return JSON sử dụng C# như PHP json_encode
return json_encode(array('param1'=>'data1','param2'=>'data2'));
làm thế nào để làm tương đương bằng C# ASP.NET MVC3 trong cách đơn giản nhất?
Trong PHP để trở lại một số JSON tôi sẽ làm:Return JSON sử dụng C# như PHP json_encode
return json_encode(array('param1'=>'data1','param2'=>'data2'));
làm thế nào để làm tương đương bằng C# ASP.NET MVC3 trong cách đơn giản nhất?
Bạn có thể sử dụng lớp JavaScriptSerializer được tích hợp sẵn trong khung công tác. Ví dụ:
var serializer = new JavaScriptSerializer();
string json = serializer.Serialize(new { param1 = "data1", param2 = "data2" });
sản lượng:
{"param1":"data1","param2":"data2"}
Nhưng kể từ khi bạn nói về trở về JSON trong ASP.NET MVC 3 có sẵn trong máy kỹ thuật cho phép bạn trực tiếp trở về đối tượng và có tiềm ẩn cơ sở hạ tầng chăm sóc serializing đối tượng này vào JSON để tránh gây ô nhiễm mã của bạn với hệ thống ống nước như vậy.
Ví dụ trong ASP.NET MVC 3, bạn chỉ cần viết một hành động điều khiển trả về một 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);
}
Bạn không còn cần phải lo lắng về hệ thống ống nước. Trong ASP.NET MVC bạn có các hành động điều khiển trả về các kết quả hành động và bạn chuyển các mô hình xem cho các kết quả hành động đó. Trong trường hợp của JsonResult nó là cơ sở hạ tầng cơ bản sẽ chăm sóc serializing các mô hình xem bạn đã chuyển đến một chuỗi JSON và ngoài việc thiết lập đúng các tiêu đề phản ứng Content-Type
để application/json
.
Điều gì về http://www.json.org/ (xem danh sách C#)?
tôi luôn luôn sử dụng JSON Net: http://json.codeplex.com/ và các tài liệu: http://james.newtonking.com/projects/json/help/
Cách đơn giản nhất nó có thể là như thế này:
public JsonResult GetData()
{
var myList = new List<MyType>();
//populate the list
return Json(myList);
}
Ghi chú rằng IE là khá tích cực về các yêu cầu bộ nhớ đệm GET. Thuộc tính '[OutputCache]' thường sẽ được yêu cầu. – jgauffin