如何在没有 JsonPropertyName 的情况下保持 JSON 结果中的属性名称与实体属性相同?

Pow*_*ech 1 asp.net-mvc entity-framework asp.net-ajax asp.net-core

我有大约 30 个实体。我使用 ajax 调用使用实体框架从数据库检索数据。我们需要使用与数据库表中相同的列名。然而ajax以驼峰大小写方式获取响应和属性显示。

public  Class ABC
{
  public string RT_ID { get; set; }
  public string START_DATE { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

JSON 响应显示 RT_ID 和 START_DATE 对应的 rtId 和 startDate 。

但是 JSON 响应显示 RT_ID 和 START_DATE,我对每个属性使用 JsonPropertyName 属性。

public  Class ABC
{
 [JsonPropertyName("RT_ID")]
  public string RT_ID { get; set; }
 [JsonPropertyName("START_DATE")]
  public string START_DATE { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

所以挑战是,我是否可以在 JSON 响应中具有相同的属性名称,而不将 JsonPropertyName 添加到类的每个属性中。可能是班级水平?

谢谢

小智 5

尝试使用下面的代码:

启动.cs

services.AddControllers().AddJsonOptions(jsonOptions =>
{
    jsonOptions.JsonSerializerOptions.PropertyNamingPolicy = null;
})
Run Code Online (Sandbox Code Playgroud)

在Asp.net Core 3中,默认PropertyNamingPolicy是camelCase并将其设置为null将解决您的问题。

有关更多详细信息,请查看此线程 ASP NET 数据集列名称格式