返回两个列表以进行查看

时间:2019-05-24 17:39:18

标签: c# model-view-controller view model

我正在尝试返回两个列表,这些列表可以帮助我填充一些网络网格,我在网上搜索了却找不到解决方案,这是我的新手

我的控制器

 public ActionResult Index()
    {
        List<WebGrid> list = new List<WebGrid>();
        using (Web_INCAEntities dc = new Web_INCAEntities())
        {
            var v = (from a in dc.Cat_Proyecto
                     join b in dc.Cat_Pais on a.Id_Pais equals b.ID
                     join c in dc.Cat_estado on a.Id_Estado equals c.Id
                     select new WebGrid
                     {
                        ID = a.ID,
                        ID_kEY = a.ID_kEY,
                        Cliente = a.Cliente,
                        Tipo_servicio = a.Tipo_servicio,
                        Descripcion = a.Descripcion,
                        Contratista = a.Contratista,
                        INCA_PM = a.INCA_PM,
                        Importe_INCA = a.Importe_INCA,
                        Importe_Cliente =  a.Importe_Cliente,
                        calle = a.calle,
                        colonia = a.colonia,
                        Estado = c.Estado,
                        Pais = b.Pais
                     });
            list = v.ToList();
        }


        List<WebGrid> list_Usuario = new List<WebGrid>();
        using (Web_INCAEntities dc = new Web_INCAEntities())
        {
            var v = (from a in dc.Usuarios
                     select new WebGrid
                     {
                         Usuario = a.Usuario,
                         nombres = a.Nombres,
                         apellidos = a.Apellido_Paterno,
                         empresa = a.Area_Empresa,
                         estatus_Usuario = a.Estatus,
                         alcance = a.Id_Alcance
                     });
            list_Usuario = v.ToList();
        }

        return View("../Admin/Administrador", list, list_Usuario);
    }

在返回视图中,试图返回到视图和我的两个列表来填充两个Web网格,只是我得到一个错误,但我想知道如何将这两个列表组合在一起才能填充网格

1 个答案:

答案 0 :(得分:1)

由于两个列表的类型相同,即List<WebGrid>

您可以使用AddRange并同时连接列表和传递视图

    public ActionResult Index()
    {
        List<WebGrid> list = new List<WebGrid>();
        using (Web_INCAEntities dc = new Web_INCAEntities())
        {
            var v = (from a in dc.Cat_Proyecto
                     join b in dc.Cat_Pais on a.Id_Pais equals b.ID
                     join c in dc.Cat_estado on a.Id_Estado equals c.Id
                     select new WebGrid
                     {
                        ID = a.ID,
                        ID_kEY = a.ID_kEY,
                        Cliente = a.Cliente,
                        Tipo_servicio = a.Tipo_servicio,
                        Descripcion = a.Descripcion,
                        Contratista = a.Contratista,
                        INCA_PM = a.INCA_PM,
                        Importe_INCA = a.Importe_INCA,
                        Importe_Cliente =  a.Importe_Cliente,
                        calle = a.calle,
                        colonia = a.colonia,
                        Estado = c.Estado,
                        Pais = b.Pais
                     });
            list = v.ToList();
        }


        List<WebGrid> list_Usuario = new List<WebGrid>();
        using (Web_INCAEntities dc = new Web_INCAEntities())
        {
            var v = (from a in dc.Usuarios
                     select new WebGrid
                     {
                         Usuario = a.Usuario,
                         nombres = a.Nombres,
                         apellidos = a.Apellido_Paterno,
                         empresa = a.Area_Empresa,
                         estatus_Usuario = a.Estatus,
                         alcance = a.Id_Alcance
                     });
            list_Usuario = v.ToList();
        }
list.AddRange(list_Usuario);
        return View("../Admin/Administrador", list);
    }

否则您可以创建一个类并使用它

public class WebGridModel
{
   public List<WebGrid> List1{get;set;}

   public List<WebGrid> List2{get;set;}
}

并像这样使用它

    public ActionResult Index()
    {
        List<WebGrid> list = new List<WebGrid>();
        using (Web_INCAEntities dc = new Web_INCAEntities())
        {
            var v = (from a in dc.Cat_Proyecto
                     join b in dc.Cat_Pais on a.Id_Pais equals b.ID
                     join c in dc.Cat_estado on a.Id_Estado equals c.Id
                     select new WebGrid
                     {
                        ID = a.ID,
                        ID_kEY = a.ID_kEY,
                        Cliente = a.Cliente,
                        Tipo_servicio = a.Tipo_servicio,
                        Descripcion = a.Descripcion,
                        Contratista = a.Contratista,
                        INCA_PM = a.INCA_PM,
                        Importe_INCA = a.Importe_INCA,
                        Importe_Cliente =  a.Importe_Cliente,
                        calle = a.calle,
                        colonia = a.colonia,
                        Estado = c.Estado,
                        Pais = b.Pais
                     });
            list = v.ToList();
        }


        List<WebGrid> list_Usuario = new List<WebGrid>();
        using (Web_INCAEntities dc = new Web_INCAEntities())
        {
            var v = (from a in dc.Usuarios
                     select new WebGrid
                     {
                         Usuario = a.Usuario,
                         nombres = a.Nombres,
                         apellidos = a.Apellido_Paterno,
                         empresa = a.Area_Empresa,
                         estatus_Usuario = a.Estatus,
                         alcance = a.Id_Alcance
                     });
            list_Usuario = v.ToList();
        }
        var returnObj = new WebGridModel
        {
           List1= list;
           List2=list_Usuario ;
        }
        return View("../Admin/Administrador", returnObj );
    }