【问题标题】:Web API method return JSON dataWeb API 方法返回 JSON 数据
【发布时间】:2018-05-07 09:56:42
【问题描述】:

我正在使用 ASP.net Web API 2.0,并且希望我的方法仅返回 JSON 格式的数据。

请从 API 控制器类建议以下方法的代码更改。

public async Task<List<Partner>> GetPartnerList()
{
    return await _context.Partners.Take(100).ToListAsync();
}

【问题讨论】:

    标签: c# asp.net-web-api asp.net-web-api2


    【解决方案1】:

    你可以使用ApiControllerJson&lt;T&gt;(T content)方法

    public async Task<IHttpActionResult> GetPartnerList() {
        List<Partner> data = await _context.Partners.Take(100).ToListAsync();
        return Json(data);
    }
    

    重构操作以返回IHttpActionResult 抽象,等待数据并将其传递给返回JsonResultJson 方法。

    这意味着无论内容协商如何,上述动作都只会返回JSON数据。

    【讨论】:

    • 现在我意识到,Web-API 框架默认将结果对象转换为 JSON 数据。
    • 内容协商即将发生。就我而言,我将 WebAPIConfig 类限制为仅使用 JsonFormatter 并删除了 XMLFormatter。
    • 但是我想听听您的专家意见,我应该使用哪种返回类型。 Task 或 Task> 。请提出建议。
    • @Karan 正如你所说,这是一个见仁见智的问题。文档中通常建议的语法是IHttpActionResult 的抽象方法。
    猜你喜欢
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 2015-10-20
    • 2013-06-29
    相关资源
    最近更新 更多