【问题标题】:Change asp.net core model property name on runtime在运行时更改 asp.net 核心模型属性名称
【发布时间】:2020-03-16 22:43:06
【问题描述】:

我有模特

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

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

【问题讨论】:

  • 发布你的尝试
  • 对不起,我不知道该怎么办。我没有尝试任何东西..虽然我确实看到了一些自定义模型绑定教程..如果这有帮助..

标签: c# asp.net-core asp.net-web-api .net-core swagger


【解决方案1】:

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

using Newtonsoft.Json;

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

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

【讨论】:

  • 它解决了我问题的第一部分,但没有解决动态部分...
  • 如果您需要将“ServiceName”更改为“ProductName”,则只需更改为[JsonProperty("ProductName")]
猜你喜欢
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-10
  • 1970-01-01
  • 2018-04-20
相关资源
最近更新 更多