MVC数据列表展示【三】
一、控制器向视图传递参数的两种形式:使用到的技术有EF,linq表达式,StringBuilder,相关技术都可以在我的博客园中找到详细的技术介绍。
1. 第一种是通过字符通过foreach循环拼接将table标签里的td放在一个StringBuilder中,然后通过ViewData传递给视图文件。以下就是相关代码
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Mvc; 6 using MvcApplication1.Models; 7 using System.Text; 8 namespace MvcApplication1.Controllers 9 { 10 public class UserInfoController : Controller 11 { 12 // GET: /UserInfo/ 13 public ActionResult Index() 14 { 15 wangjin2Entities1 db = new wangjin2Entities1(); 16 var userinfolist = db.Userinfo.Where<Userinfo> 17 (u => true); 18 StringBuilder sb = new StringBuilder(); 19 foreach (var userinfo in userinfolist) 20 { 21 sb.AppendFormat("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td></tr>", userinfo.Id, userinfo.username, userinfo.password, userinfo.Emil, userinfo.CreateDate.ToShortDateString()); 22 } 23 //控制器向视图传数据 24 ViewData["userinfolist"]=sb.ToString(); 25 return View(); 26 //方法 27 } 28 } 29 }
1.1 视图代码
1 <body> 2 <div> 3 <table> 4 <tr><th>ID</th><th>用户名</th><th>密码</th><th>邮箱</th><th>创建日期</th></tr> 5 <%=ViewData["userinfolist"] %> 6 </table> 7 </div> 8 </body>
2. 第二种是直接将EF查到的数据传递给前端页面,但是前端接收的时候就需要对数据进行处理。代码如下
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Mvc; 6 using MvcApplication1.Models; 7 using System.Text; 8 namespace MvcApplication1.Controllers 9 { 10 public class UserInfoController : Controller 11 { 12 // GET: /UserInfo/ 13 public ActionResult Index() 14 { 15 wangjin2Entities1 db = new wangjin2Entities1(); 16 var userinfolist = db.Userinfo.Where<Userinfo> 17 (u => true); 18 ViewData["userinfolist"] =userinfolist; 19 return View(); 20 } 21 } 22 }
2.1 前端代码中需要用到导入命名空间,并且将数据强转成IQueryable。具体代码如下:
1 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> 2 <%@ Import Namespace="MvcApplication1.Models" %> 3 <!DOCTYPE html> 4 5 <html> 6 <head runat="server"> 7 <meta name="viewport" content="width=device-width" /> 8 <title>Index</title> 9 </head> 10 <body> 11 <div> 12 <table> 13 <tr><th>ID</th><th>用户名</th><th>密码</th><th>邮箱</th><th>创建日期</th></tr> 14 <%-- <%=ViewData["userinfolist"] %>--%> 15 <%foreach( var userinfo in (IQueryable<Userinfo>)ViewData["userinfolist"]) {%> 16 <tr> 17 <td><%=userinfo.Id %></td> 18 <td><%=userinfo.username %></td> 19 <td><%=userinfo.password %></td> 20 <td><%=userinfo.Emil %></td> 21 <td><%=userinfo.CreateDate.ToShortDateString() %></td> 22 </tr> 23 <%} %> 24 </table> 25 </div> 26 </body> 27 </html>