首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp :美化ActionResult WebApi输出

Asp :美化ActionResult WebApi输出
EN

Stack Overflow用户
提问于 2017-01-31 18:08:34
回答 2查看 839关注 0票数 1

我在基于ASP.NET核心Web API的REST服务上工作,并想在我的端点添加一个参数'prettify‘,这样响应json就会被缩进格式化,并在web浏览器中可读。

我的问题--如何在ASP.WEB应用程序接口核心应用程序中更改每个控制器方法的JSON格式?

谢谢你的帮助。

EN

Stack Overflow用户

发布于 2017-01-31 21:30:29

感谢@Nkosi评论,我找到了解决方案。下面是动作过滤器的代码,它查找'prettify‘参数并将缩进添加到输出JSON。如果省略该参数,则还会添加缩进。

代码语言:javascript
复制
public class OutputFormatActionFilter : IActionFilter
{
    public void OnActionExecuting(ActionExecutingContext context)
    {
    }

    public void OnActionExecuted(ActionExecutedContext context)
    {
        var actionResult = context.Result as ObjectResult;
        if (actionResult == null) return;

        var paramObj = context.HttpContext.Request.Query["prettify"];
        var isPrettify = string.IsNullOrEmpty(paramObj) || bool.Parse(paramObj);

        if (!isPrettify) return;

        var settings = new JsonSerializerSettings { Formatting = Formatting.Indented };

        actionResult.Formatters.Add(new JsonOutputFormatter(settings, ArrayPool<char>.Shared));
    }
}
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41954750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档