如何在 C# 中为模型及其子模型设置值?

how to set value to Models and it's Sub Models in C#?

我有主模型 class 作为 Bellow

  public class MainModel
    {
        public string Code{ get; set; }
        public string FullName{ get; set; }
        public string Position{ get; set; }
        public virtual SUB_DETAILS subdetails { get; set; }
    }

和SUB_DETAILS模型class是:

public class SUB_DETAILS
    {
        public SUB_DETAILS()
        {
            MainModel= new HashSet<MainModel>();
        }
      public string UniqueCode { get; set; }
      public string PassportNumber { get; set; }
     public virtual ICollection<MainModel> MainModel{ get; set; }
    }

我想为这些模型设置值以将数据发送到 Web API myCode 是:

MainModel r = new MainModel();
 r.Code= "1245454354";
 r.FullName= "FullName Here";
 r.Position="Position Here";
 r.subdetails.UniqueCode="151221";
 r.subdetails.PassportNumber="2145";
var sendData = client.PostAsJsonAsync("api/PostData", new List<MainModel> { r }).Result;

它不接受 r.subdetails.UniqueCode="151221";r.subdetails.PassportNumber="2145"; 的值 并给我错误“对象引用未设置到对象的实例。MainModel.subdetails.get return null”任何人都可以帮助如何为我的 MainModel 设置值并且它是 SUB_DETAILS 发送正确的数据到网络 API

错了 你可以改变这个

SUB_DETAILS s = new SUB_DETAILS();
        s.MainModel.Add(
            new MainModel
            {
                Code = "1245454354",
                FullName = "FullName Here",
                Position = "Position Here"
            }
        );
        s.UniqueCode = "151221";
       s.PassportNumber = "2145";
        var sendData = client.PostAsJsonAsync("api/PostData", new List<SUB_DETAILS> { s }).Result;






public class MainModel
{
    public string Code { get; set; }
    public string FullName { get; set; }
    public string Position { get; set; }
}



public class SUB_DETAILS
{
    public SUB_DETAILS()
    {
        MainModel = new HashSet<MainModel>();
    }
    public string UniqueCode { get; set; }
    public string PassportNumber { get; set; }
    public virtual ICollection<MainModel> MainModel { get; set; }
}

或者

MainModel r = new MainModel();
        r.Code = "1245454354";
        r.FullName = "FullName Here";
        r.Position = "Position Here";
        r.SUB_DETAILS.Add(new SUB_DETAILS
        {
            UniqueCode = "151221",
            PassportNumber= "2145"
        }); 
        var sendData = client.PostAsJsonAsync("api/PostData", new List<MainModel> { r }).Result;

public class MainModel
{
    public MainModel()
    {
        SUB_DETAILS = new HashSet<SUB_DETAILS>();
    }
    public string Code { get; set; }
    public string FullName { get; set; }
    public string Position { get; set; }
    public virtual ICollection<SUB_DETAILS> SUB_DETAILS { get; set; }
}
 public class SUB_DETAILS
{
    public string UniqueCode { get; set; }
    public string PassportNumber { get; set; }
}