首页 > 解决方案 > 多个数据从数据库显示到同一视图中

问题描述

控制器:

private void FetchData()
        {
           //Reinicia a varíavel addresses se já conter algo
                if (addresses.Count > 0)
                {

                    addresses.Clear();
                }
                try
                {
                    con.Open();
                    com.Connection = con;
                    com.CommandText = "SELECT [ID], [SYSTEM_NAME], [SYSTEM_STATUS], [SYSTEM_SHORTMSG] FROM [CORE_SYS_STATUS]";
                    dr = com.ExecuteReader();
                    while (dr.Read())
                    {
                    //Lê os dados da base de dados 
                        addresses.Add(new GestaoAlertas()
                        {
                            ID = (int)dr["ID"]
                        ,
                            SYSTEM_NAME = dr["SYSTEM_NAME"].ToString()
                        ,
                            SYSTEM_STATUS = dr["SYSTEM_STATUS"].ToString()
                        ,
                            SYSTEM_SHORTMSG = dr["SYSTEM_SHORTMSG"].ToString()

                        });
                    }
                    con.Close();
                    }
              //Mostra o erro se houver um
                catch (Exception ex)
                {
                   throw ex;
                }
        }

我的观点:

public IActionResult Index()
        {
            FetchData();
            return View(addresses);
        }

我想知道如何将更多数据(不同的表)放入索引视图,我尝试做一个地址2,但它没有意义,因为我不能把它放在“返回视图()”上。

标签: c#asp.net-mvc

解决方案


你必须创建一个视图模型

public class AddressViewModel
{
    public List<Address> Adresses {get; set;}
      public List<Address> Adresses2 {get; set;}
}

行动

public IActionResult Index()
{
     var model=new AddressViewModel {Address= new List<Address>, Address= new List<Address> };
      FetchData(model.Address);
      FetchData(model.Address2);
      return View(model);
 }


private void FetchData(List<Address> adresses)
 {
.....
}

看法

@model AddressViewModel
.....

推荐阅读