首页 > 解决方案 > 在运行时更改 asp.net 核心模型属性名称

问题描述

我有一个模型

 public class Item
 {
    public int Id { get; set; }
    public string ItemName { get; set; }
 }

我喜欢在 api 端点和 swagger中将 Property ItemName显示为ServiceName 。用户将以ServiceName的形式获取/发布数据,但在后端它将绑定到ItemName。其他重要的想法是ServiceName应该是动态的,它来自数据库,如果我将ServiceName更改为ProductName那么它应该将ProductName绑定到ItemName。我正在使用带有 EF 核心和 swagger ui 的 asp.net core 2.2。

标签: c#asp.net-coreasp.net-web-api.net-coreswagger

解决方案


您可以使用JsonProperty属性。它有一个接受propertyName字符串的构造函数。

using Newtonsoft.Json;

public class Item
{
    public int Id { get; set; }

    [JsonProperty("ServiceName")]
    public string ItemName { get; set; }
}

推荐阅读