使用MVC中的SqlDataReader将数据显示到View

时间:2016-03-28 11:19:55

标签: c# asp.net-mvc razor sqldatareader

如何使用MVC中的SqlDataReader使用Razor视图显示数据? 我尝试过这样的事情。

控制器代码: -

C#

1 个答案:

答案 0 :(得分:2)

不确定您的问题是什么,但这里是如何将您的模型对象传递到相应的视图。

通过添加要传递模型对象的视图名称来修改控制器的返回行,然后作为第二个参数添加模型对象:

public ActionResult UserDetails(DashBoard dash)
{ 

        using (var cn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
        {
            String sql = "SELECT DU.UserRMN, MU.Name, DeptName, MgrID, TLeadID FROM Details_Users DU, Master_Users MU where DU.UserRMN=MU.UserRMN";
            SqlCommand cmd = new SqlCommand(sql, cn);           
            cn.Open();
            SqlDataReader rdr = cmd.ExecuteReader();
            List<DashBoard> model = new List<DashBoard>();
            while(rdr.Read())
            {
                var details = new DashBoard();
                details.UserRMN = rdr["UserRMN"].ToString();
                details.Name = rdr["Name"].ToString();
                details.DeptID = rdr["DeptID"].ToString();
                details.MgrID = rdr["MgrID"].ToString();
                details.TLeadID = rdr["TLeadID"].ToString();
                model.Add(details);
            }
            return View("ViewName", model);
        } 

您的观点应如下所示:

        @model IEnumerable<Models.DashBoard>
        @{
            ViewBag.Title = "Dashboard";
        }

        <h2>Dashboard</h2>

        @foreach(var item in Model){
            <div>
                <li>
                    @item.Name
               </li>
               <li>
                    @item.DeptID 
               </li>
               ....
            </div>
        }