在模型中声明列表

本文关键字:列表 声明 模型 | 更新日期: 2023-09-27 17:53:25

我有一个场景,我不想传递一个模型作为Ienumerable列表到Razor视图

public class School
{
   public int ID { get; set; }
   public string Name { get; set; }
   public string Address { get; set; }
}

我需要像下面这样传递模型给视图。

@model Doc.Web.Models.Common.School

没有

@model IEnumerable<Doc.Web.Models.Common.School>
因此,我在同一个模型中声明了一个List

public class School
{
    public School()
    {
        lstSchool = new List<School>();
    }
    public int ID { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public List<School> lstSchool { get; set; }
}

然后在控制器

public ActionResult Index()
{
   School model= new School();
   SchoolRepository rep = new SchoolRepository();
   model.lstSchool= rep.GetData();//Read list of schools from database
   return View(model);
}

这是实现这一目标的正确方法吗?

在模型中声明列表

为什么要将@model Doc.Web.Models.Common.School传递给视图?在你的视图中需要一个"list"

你可以试试……

类结构:创建一个SchoolList类

public class School
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
}
public class SchoolList 
{
    public List<School> Schools { get; set; }
}

传递给view:

@model Doc.Web.Models.Common.SchoolList

控制器:

public ActionResult Index()
{
    SchoolList model= new SchoolList();
    SchoolRepository rep = new SchoolRepository();
    //Read list of schools from database
    model.Schools = rep.GetData(); 
    return View(model);
}

这样你就不需要传递一个IEnumerable给视图来完成工作了