gpt4 book ai didi

asp.net-mvc-4 - MVC 4-Web Api和JSON?

转载 作者:行者123 更新时间:2023-12-04 04:57:33 24 4
gpt4 key购买 nike

我正在使用MVC 4的Web API,并且对默认格式有些困惑。我希望API数据使用JSON。但是,它以XML返回它。根据MVC 4入门视频http://www.asp.net/web-api/videos/getting-started/your-first-web-api,默认情况下应为JSON。但是,当我创建一个新的Web Api项目并运行示例时,我得到了:

<ArrayOfstring><string>value1</string><string>value2</string></ArrayOfstring>

我一直在兜圈子,试图用JSON来获取它,但是显然有很多关于此的错误信息。如:
  • 如果我在内容类型 header 中添加“application/json”,则应返回JSON。这不起作用,但是我怀疑我没有正确的标题变量名称,因为我找不到要使用的确切名称。我已经尝试在请求 header 中使用“Content-Type”和“contentType”,但是没有运气。此外,我默认情况下需要JSON,而不是根据 header 信息。
  • 如果我创建一个JsonFormatter并将其添加到Application_Start GlobalConfiguration.Configuration.Formatters.Insert(0, new JsonNetFormatter(serializerSettings));中,它应该可以解决问题。但是我收集了这个贬值的货币,因为所有示例都没有用。

  • 我最好怎么做,最好是简单地默认情况下以JSON格式输出数据?

    最佳答案

    将此添加到GLOBAL.ASAX以获得响应为 application/json

    GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

    因此,它在上下文中应如下所示:
    protected void Application_Start()
    {
    AreaRegistration.RegisterAllAreas();

    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);

    BundleTable.Bundles.RegisterTemplateBundles();
    GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
    }

    如果需要将XML保留为媒体类型,则可以编辑 App_Start/WebApiConfig.cs :
    config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html") );

    这使JSON成为Web浏览器的默认响应,但返回 text/html

    Source

    关于asp.net-mvc-4 - MVC 4-Web Api和JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12904972/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com