【问题标题】:Is it possible to return json data through web API?是否可以通过 Web API 返回 json 数据?
【发布时间】:2013-04-05 15:50:58
【问题描述】:

我有一个返回 JSON 数据的控制器操作。它可以通过 getJSON 方法轻松访问。但我希望通过 Web API 检索 JSON 数据。

我的控制器代码是

public ActionResult GetProfile(string profileName)
    {
        var profileDataService = new BokingEngine.MasterDataService.GetProfileDataService();
        var request = new ProfileSearchCriteria { Name = profileName };
        var profileDetails = profileDataService.GetList(request);
        return Json(profileDetails, JsonRequestBehavior.AllowGet);

    }

【问题讨论】:

  • 顺便说一句,您的代码使用的是 ASP.NET MVC,而不是 ASP.NET Web API。您是否尝试将代码从 MVC 转换为 Web API 或其他方式?

标签: asp.net-mvc json asp.net-web-api


【解决方案1】:

在 Web API 中,这将是您的操作:

public class ProfileController : ApiController {
    public ProfileData Get(string profileName)
    {
        var profileDataService = new BokingEngine.MasterDataService.GetProfileDataService();
        var request = new ProfileSearchCriteria { Name = profileName };
        var profileDetails = profileDataService.GetList(request);
        return profileDetails;
    }
}

那么您的客户应该指定他们想要的数据类型。如果指定了 Accept: application/json 标头,则 Web API 返回 JSON。接受:text/xml 将产生 XML。

更多信息:http://www.asp.net/web-api/overview/formats-and-model-binding/media-formatters

【讨论】:

  • 它在我的情况下不起作用,因为 'profileDetails' 和 'ProfileData' 是一个模型类。我无法将列表返回课堂
【解决方案2】:

将您的 ActionResult 更改为 JsonResult,以便它返回 Json。如果你想让 Web API 具体化,你应该创建一个继承 ApiController 的 Controller。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 2012-08-27
    • 1970-01-01
    相关资源
    最近更新 更多