【问题标题】:List in List Model ASP Core列表模型 ASP Core 中的列表
【发布时间】:2018-05-15 08:26:44
【问题描述】:

如何正确地将List放入模型中并从模型中赋值——在MasterDetail中形成JsonResult

“Test2”的值被正常接受,但由于赋值问题,字段初始化器无法访问非静态字段、方法或“List1”属性。

public class List1 {

   public int Id { get; set; }
   public string FirstName { get; set; }
   public string SecondName { get; set; }

   public string Login { get; set; }

   [NotMapped]
   public List<Test> Test { get; set; } = new List<Test>
   {
       new Test() { Name = Login, Age = "Age1" },  
       new Test() { Name = "Test2", Age = "Age2" }            
   };
}

public  class Test
{
    public string Name { get; set; }

    public string Age { get; set; }
}

【问题讨论】:

  • 因为它错误地指出“字段初始化程序无法访问 非静态 字段、方法或“List1”属性。”。 Login 属性在初始化期间未知。更重要的是,当 Test 初始化时,它总是 null。你如何实例化 List1 类?

标签: c# asp.net .net asp.net-core model


【解决方案1】:

您正试图将未实例化的对象放入字符串变量中,此处:

new Test() { Name = Login, Age = "Age1" },  

要使您的代码正常工作,您首先必须有一个已填充的登录对象,然后您可以使用以下方法将其值放入列表中:

List1 l1 = new List1{ Login = "ABCD" }
new Test() { Name = l1.Login, Age = "Age1" },  

【讨论】:

  • 是的,但是Login 字段中的数据是从数据库中获取的——所以我需要get;set;
  • 模型类只包含关于将数据库中的数据放在哪里的指针。在编译时,也就是你想执行这个函数的时候,你不能把引用放到一个对象中,因为它什么都不包含。要实现您想要做的事情,您必须首先从数据库中填充模型,然后访问它并填充所需的字段。正如上面 Krypt1 所问的:如何实例化 List1 类?
猜你喜欢
  • 1970-01-01
  • 2021-12-14
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
  • 2020-11-30
  • 2018-04-27
  • 2021-04-11
  • 2019-10-03
相关资源
最近更新 更多