设置api.controller.json函数以使用全局序列化



在ASP.NET Web API控制器中,我正在使用这样的JSONRESULTS:

return Json(data);

我在Webapiconfig中设置了我在建议的许多地方发现的全局默认值。

HttpConfiguration config = GlobalConfiguration.Configuration;
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new StringEnumConverter());

我认为这将是使用设置,但事实并非如此。为了解决问题:

return Json(data, GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings);

这可以正常工作,但是我是否缺少一些使全局序列化设置一直适用的东西?

通过调用JSON(数据),您正在执行此过载 - 您可以看到它正在创建Serializer设置的新实例

    protected internal JsonResult<T> Json<T>(T content)
    {
        return Json<T>(content, new JsonSerializerSettings());
    }

如果您使用返回协商结果的Apicontroller方法之一,例如ApiconTroller.ok,例如return Ok(data),则将格式化从全局配置中解析,您将看到所需的行为。

相关内容

  • 没有找到相关文章

最新更新