2013-04-04 24 views
6

Tôi đang cố trả về chuỗi Json từ bộ điều khiển MVC trong ứng dụng WebAPI, nhưng không thể sử dụng return Json(... vì lớp đang được sử dụng mở rộng ApiController và không Controller (Tôi tin) .Trả về Json từ bộ điều khiển MVC mở rộng Apicontroller

Có phương pháp thay thế nào để thực hiện những gì tôi đang cố gắng làm (ví dụ: trả về một loại khác) không? Hoặc một cách giải quyết?

Đây là mã điều khiển của tôi:

public class SocialController : ApiController 
{ 
    public ActionResult Get(SocialRequest request) // or JsonResult? 
    { 
     JavaScriptSerializer js = new JavaScriptSerializer(); 
     string jsontest = js.Serialize(request); // just serializing back and forth for testing 

     return Json(jsontest, JsonRequestBehavior.AllowGet); 
    } 
} 

Các lỗi Tôi nhận được là "System.Web.Helpers.Json là một loại nhưng được sử dụng như một biến."

Tôi đã tìm thấy liên quan SO câu dưới đây nhưng nó đã không được giải quyết nó cho tôi, nếu có ai có thể giải thích tôi thực sự muốn đánh giá cao nó (và món ăn ra các điểm đại diện): Why Json() Function is unknown

Trả lời

9

Trong Asp.net Web Api bạn không có ActionResults nữa. Bạn chỉ cần trả lại đối tượng bạn cần. Khung chuyển đổi đối tượng thành phản hồi thích hợp (json, xml hoặc các loại khác)

[HttpGet] 
public IEnumerable<string> GetUsers(SocialRequest request) 
{ 
    return _applicationsService.GetUserss(request); 
} 
Các vấn đề liên quan