繁体   English   中英

如何在 .net 核心中绑定数据 model object 的属性名称

[英]How to bind property name of the data model object in .net core

我创建了一个数据 model class 并在其中创建了另一个 class 类型的属性。 前任:

public class Properties
{
    public string PropertyName { get; set; }
    public TypeExt Property { get; set; }        
}

public class TypeExt
{
    public string DataType { get; set; }
    public string DataTypeExt { get; set; }
    public string Type { get; set; }
}  

现在,当我绑定值时,一切正常,除了我需要将 PropertyName 值作为属性的 Label 来使最终的 Json 变成这样。

{
   "Properties":[
      {
         "Test1Property":{
            "DataType":"Unsigned integer ",
            "DataTypeExt":"64bit",
            "Type":"PM"
         }
      },
      {
         "Test2Propert":{
            "DataType":"Integer ",
            "DataTypeExt":"64bit",
            "Type":"PM"
         }
      }
   ]
}

获得它以便将PropertyName作为键的一种方法是使用Dictionary作为 model 的一部分。

var properties = new Dictionary<string, TypeExt>();

var test1Property = new TypeExt { Type = "PM", DataType = "Integer", DataTypeExt = "64bit" };
var test2Property = new TypeExt { Type = "PM", DataType = "Unsigned Integer", DataTypeExt = "64bit" };

properties.Add("Test1Property", test1Property);
properties.Add("Test2Property", test2Property);

序列化时的结果如下。 它与上面的 JSON 略有不同。 请注意,它不再是“对象数组”,而是包含属性的 object,每个属性都是字典键。

{
  "Test1Property" : { 
    "Type": "PM",
    "DataType": "Integer",
    "DataTypeExt": "64bit"
  },
  "Test2Property" : {
    "Type": "PM",
    "DataType": "Unsigned Integer",
    "DataTypeExt": "64bit"
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM