zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    new对象数组时的内存布局
    写程序取自己进程的AEP
    类虚函数表原理实现分析(当我们将虚表地址[n]中的函数替换,那么虚函数的实现就由我们来控制了)
    测试 __try, __finally, __except(被__finally捕获的异常, 还会被上一级的__except捕获。反之不行)
    围观M$的new
    将258.369 double值转为内存表示(科学计数法)
    Broadcast Reveiver作用
    DEBUG模式下, 内存中的变量地址分析
    不包含SDK头文件, 补全API定义
    俄罗斯方块SDK版
  • 原文地址:https://www.cnblogs.com/wangjinya/p/10654286.html
Copyright © 2011-2022 走看看