如何使用视图模型从 linq 查询返回列表

本文关键字:查询 返回 列表 linq 何使用 视图 模型 | 更新日期: 2023-09-27 18:37:05

我有这样的课程

public class class1
    {
        public int class1id { get; set; }
        public string name { get; set; }
    }
    public class class2
    {
        public int id { get; set; }
        public int class1id { get; set; }
        public string from { get; set; }
        public string to { get; set; }
    }
    public class viewmodel
    {
        public class2 deletedocument { get; set; }
        public IList<class2> deletelist { get; set; }
    }

现在我想返回一个带有名称,从,到属性的列表。这里来自class1和class1id的名称是外键(class1)。我该怎么做?我需要更改我的模型吗?

如何使用视图模型从 linq 查询返回列表

模型

您可以做的是创建一个具有这三个属性的Model

public class MyModel {
    public string name { get; set; }
    public string from { get; set; }
    public string to { get; set; }
}

视图

然后在你的Razor View中,你声明一个IEnumerable<MyModel>是你的Model

@model IEnumerable<ProjectName.Models.MyModel>

控制器

在您的Controller中,您可以从另外两个查询进行查询,在此过程中创建IEnumerable<MyModel>并返回它

public ActionResult Index(){
    var models = from a in blabla //query what you want here, generate IEnumerable<MyModel>
                 join b in blabla2 on a.class1id equals b.class1id
                 select new MyModel{ name = a.name, from = b.from, to = c.to}
    return View(models);
}