ASP.NET Core MVC动态返回不是camelCased

moh*_*eli 4 c# camelcasing asp.net-core

从服务返回强类型对象,并将 JSON 属性呈现为驼峰命名法,因为这是 ASP.NET Core MVC 中的默认设置。

dynamic然而,有时我们需要使用关键字和类来动态创建一些东西ExpandoObject

这些属性不再是驼峰式的。

如何强制 ASP.NET Core MVC 来实现一切?

Hen*_*nry 5

在 Startup.cs 中,您可以指定用于序列化的解析器。您正在寻找的是 CamelCasePropertyNamesContractResolver,它可以通过以下方式启用:

        services.AddMvc()
        .AddJsonOptions(options =>
        {
            options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
        });
Run Code Online (Sandbox Code Playgroud)

我已经用动态类型对其进行了测试,并且它按预期工作。

  • 我已经使用 ASP.NET Core 2.2 尝试过此操作,但没有任何效果,我仍然看到类型化对象中的动态对象是 (Upper)PascalCase 而不是驼峰式命名,而类型化对象属性确实是驼峰式命名... (2认同)