Joh*_*nny 4 c# odata asp.net-core
使用Microsoft.AspNetCOre.OData 7.0.1,如果我有数据库中没有的模型列表,则JSON结果总是以PascalCase而不是camelCase的形式返回。如何获得我的清单为camelCase?
下面的相对示例:
我的模型不在数据库中。
public class Widget
{
public string Id { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的控制器
[Route("api/[controller]")]
public class WidgetController : ODataController
{
[EnableQuery()]
public IActionResult GetWidgets()
{
// Create list of ten Widgets
var widgetsList = new List<Widget>();
for(var i = 0; i < 10; i++) {
widgetsList.Add(new Widget() { Id = i, Name = $"Widget {i}" });
}
return this.Ok(widgetsList);
}
}
Run Code Online (Sandbox Code Playgroud)
/ api / GetWidgets?$ select = name以以下格式返回
{ Name: "Widget" }
Run Code Online (Sandbox Code Playgroud)
即使Widget不在数据库中,也可以将其添加到实体数据模型(EDM)中。EDM可能将骆驼案作为惯例。Widget将遵守该约定。
var builder = new ODataConventionModelBuilder();
builder.EnableLowerCamelCase();
builder.EntitySet<Widget>("Widgets");
_edmModel = builder.GetEdmModel();
Run Code Online (Sandbox Code Playgroud)
这是odata / webapi存储库的示例OData分支。
在中设置MVC JSON选项ConfigureServices。现在,JSON响应将采用驼峰格式。
services
.AddMvc()
.AddJsonOptions(options => {
options.SerializerSettings.ContractResolver =
new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3745 次 |
| 最近记录: |