return JSON 原样 (PascalCase) 来自一个 Action

return JSON as is (PascalCase) from one Action

在 asp.net 核心 3 中,返回的 json 将自动转换为驼峰式大小写,我知道如何在全局范围内关闭它,但如何通过一个动作关闭它? 我知道应该是这样的

return Json(myObj, cfgHere); 

但在任何地方都找不到这个例子

Json 方法是 Controller 的一部分,但不是 ControllerBase 的一部分。如果您正在使用 ControllerBase,这对于不使用视图的控制器来说是典型的,您可以新建一个 JsonResult 和 return,即:

return new JsonResult(myObj, cfgHere);

这就是 Controller.Json 方法真正做的所有事情,如 source:

中所示
public virtual JsonResult Json(object data, object serializerSettings)
{
    return new JsonResult(data, serializerSettings);
}

serializerSettings 可以是 JsonSerializerOptions or JsonSerializerSettings(如果您使用的是 Json.NET)。这是一个假设您使用默认的、基于 System.Text.Json 的格式化程序的示例:

return new JsonResult(myObj, new JsonSerializerOptions());

通过在不设置任何属性的情况下创建 JsonSerializerOptions 的实例,PropertyNamingPolicy 保留为 default 策略,从而保留 属性 原样命名。

如果您想使用支持内容协商的更具声明性的方法,请参阅: