码迷,mamicode.com
首页 > Web开发 > 详细

转asp.net mvc 显示列表数据

时间:2015-11-09 12:20:18      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

概述

ASP.NET WebForm下,显示列表数据,经常会使用服务器控件GridView、DataList等。在ASP.NET MVC Framework中,我们有两种方式进行显示数据,一是使用行内代码,即通过循环视图数据使用<%=%>标记进行呈现;二是使用服务器控件,同样可以把视图数据绑定在服务器控件,如ASP.NET 3.5中的新控件ListView。

定义Controller

这里的Controller定义就非常简单了,获取所有Post数据,然后把数据传给视图

[csharp] view plaincopy
 
  1. public class BlogController : Controller  
  2. {  
  3.     [ControllerAction]  
  4.     public void Index()  
  5.     {  
  6.         // 获取所有post数据  
  7.         BlogRepository repository = new BlogRepository();  
  8.   
  9.         List<Post> posts = repository.GetAll();  
  10.   
  11.         // 转向视图Index,显示Post列表  
  12.         RenderView("Index", posts);  
  13.     }  
  14. }  

 

定义View

添加一个Index视图,并使其继承于ViewPage<List<Post>>。

1.使用行内代码显示,进行数据的循环并使用ViewPage提供的HtmlHelper方法。

[html] view plaincopy
 
  1. <h3>1.使用行内代码</h3>  
  2.     <%=Html.ActionLink("Home", new { action="Index"})%> |  
  3.     <div>  
  4.         <%foreach (Post post in ViewData)  
  5.           { %>  
  6.         <div class="postitem">  
  7.             <strong>Title</strong>:<%=Html.Encode(post.Title) %></br>  
  8.             <strong>Author</strong>:<%=Html.Encode(post.Author) %></br>  
  9.             <strong>PubDate</strong>:<%=Html.Encode(post.PubDate.ToShortDateString()) %></br>  
  10.             <strong>Content</strong>:<%=Html.Encode(post.Description) %></br>  
  11.         </div><br />  
  12.         <% } %>  
  13.     </div>  


2.使用服务器控件ListView,编写代码如下:

[html] view plaincopy
 
  1. <h3>使用ListView控件</h3>  
  2.     <asp:ListView ID="ListView1" runat="server">  
  3.         <LayoutTemplate>  
  4.               <div>  
  5.                      <asp:PlaceHolder ID="itemPlaceHolder" Runat="server"/>  
  6.              </div>  
  7.         </LayoutTemplate>  
  8.   
  9.         <ItemTemplate>  
  10.             <div class="postitem">  
  11.             <strong>Title</strong>:<%# Eval("Title") %></</br>  
  12.             <strong>Author</strong>:<%# Eval("Author")%></br>  
  13.             <strong>PubDate</strong>:<%# Eval("PubDate")%></br>  
  14.             <strong>Content</strong>:<%# Eval("Description") %></br>  
  15.         </div><br />  
  16.         </ItemTemplate>  
  17.     </asp:ListView>  


在后台代码中进行ListView的数据绑定,这里仅仅是对把视图数据绑定到了ListView上面,从数据库中获取数据交给Controller去做。

[csharp] view plaincopy
 
  1. public partial class Views_Blog_Index : ViewPage<List<Post>>  
  2. {  
  3.     protected void Page_Load(object sender, EventArgs e)  
  4.     {  
  5.         this.ListView1.DataSource = ViewData;  
  6.         this.ListView1.DataBind();  
  7.     }  
  8. }  

 

设置路径选择

同样我们需要进行路径选择的设置

[csharp] view plaincopy
 
    1. void Application_Start(object sender, EventArgs e)   
    2. {  
    3.     // Code that runs on application startup  
    4.     RouteTable.Routes.Add(  
    5.                 new Route  
    6.                 {  
    7.                     Url = "[controller]/[action].mvc",  
    8.                     Defaults = new { action = "Index" },  
    9.                     RouteHandler = typeof(MvcRouteHandler)  
    10.                 });  
    11. }  

转asp.net mvc 显示列表数据

标签:

原文地址:http://www.cnblogs.com/cchliang/p/4949456.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!