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>
原文地址:https://www.cnblogs.com/wangjinya/p/10654286.html