转asp.net mvc 显示列表数据

概述

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. List<Post> posts = repository.GetAll();
  9. // 转向视图Index,显示Post列表
  10. RenderView("Index", posts);
  11. }
  12. }

定义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. <ItemTemplate>
  9. <div class="postitem">
  10. <strong>Title</strong>:<%# Eval("Title") %></</br>
  11. <strong>Author</strong>:<%# Eval("Author")%></br>
  12. <strong>PubDate</strong>:<%# Eval("PubDate")%></br>
  13. <strong>Content</strong>:<%# Eval("Description") %></br>
  14. </div><br />
  15. </ItemTemplate>
  16. </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. }
时间: 2024-10-18 02:29:00

转asp.net mvc 显示列表数据的相关文章

ASP.NET MVC 5 - 将数据从控制器传递给视图

原文:ASP.NET MVC 5 - 将数据从控制器传递给视图 在我们讨论数据库和数据模型之前,让我们先讨论一下如何将数据从控制器传递给视图.控制器类将响应请求来的URL.控制器类是给您写代码来处理传入请求的地方,并从数据库中检索数据,并最终决定什么类型的返回结果会发送回浏览器.视图模板可以被控制器用来产生格式化过的HTML从而返回给浏览器. 控制器负责给任何数据或者对象提供一个必需的视图模板,用这个视图模板来Render返回给浏览器的HTML.最佳做法是:一个视图模板应该永远不会执行业务逻辑或

asp.net mvc常用的数据注解和验证以及entity framework数据映射

终于有时间整理一下asp.net mvc 和 entity framework 方面的素材了. 闲话少说,步入正题: 下面是model层的管理员信息表,也是大伙比较常用到的,看看下面的代码大伙应该不会陌生, 在此Model上我们用到了asp.net mvc的数据注解和验证,entity framework对数据库的映射 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.T

念念不忘,ASP.NET MVC显示WebForm网页或UserControl控件

学习与使用ASP.NET MVC这样久,还是对asp.net念念不忘.能否在asp.net mvc去显示aspx或是user control呢?这个灵感(算不上灵感,只能算是想法)是来自前些天有写过一篇<多个视图结果显示于一个共用预览视图内>http://www.cnblogs.com/insus/p/3633298.html 其中有一个Render方法.以致想起以前开发asp.net时,也经常Render用户控件.即是说把网页经过Render之后,转换为是一串字符串. 那我们也一定可以把这串

ASP.NET MVC显示UserControl控件(扩展篇)

昨晚Insus.NET有怀旧一下<念念不忘,ASP.NET MVC显示WebForm网页或UserControl控件>http://www.cnblogs.com/insus/p/3641610.html 那仅是小小尝试,还有很多不明的地方. 那一篇其中有Render用户控件ascx的.如今Insus.NET想重构它一下,让步其能在Action或是Razor语法中使用. 创建一个AscxUtility.cs,这们我们可以在应用程序中多个地方使用. 这样我们就可以重构一下昨晚那个public A

Asp.NET MVC 导入Excel数据教程 手把手教你系列!!!

先上效果图 1.引言 小弟最近接了个大学生的毕业设计,收了100块钱让做一个ASP.NET MVC导入Excel到数据库的功能,由于以前没做过就到处搜索资料,但是发现网上的资料不是直接贴一大堆乱起八遭的源码,就是需要借用NPOI第三方类库太麻烦了,况且预算才100RMB简直不值得,所以小弟尝试自己动手丰衣足食,所以就有了这篇博客. 先上一张小弟的思路图: (说明:没有安装做流程图的软件!凑合着看吧) 2 进入正题 首先跟着小弟先创建一个默认的MVC项目(相信大家都会创建,这里就不演示了) 第一步

[转]ASP.NET MVC 5 - 将数据从控制器传递给视图

在我们讨论数据库和数据模型之前,让我们先讨论一下如何将数据从控制器传递给视图.控制器类将响应请求来的URL.控制器类是给您写代码来处理传入请求的地方,并从数据库中检索数据,并最终决定什么类型的返回结果会发送回浏览器.视图模板可以被控制器用来产生格式化过的HTML从而返回给浏览器. 控制器负责给任何数据或者对象提供一个必需的视图模板,用这个视图模板来Render返回给浏览器的HTML.最佳做法是:一个视图模板应该永远不会执行业务逻辑或者直接和数据库进行交互.相应的,一个视图模板应该只和控制器所提供

ASP.NET MVC显示HTML字符串

一些html经HtmlEncode后,如“<span>测试数据</span>”.现需要把这些内容正常显示于asp.net mvc的视图内. 举个例子来解决与说明,先创建一个model: 创建一个控制器: 在视图可以实现,使用@Html.Raw()方法. 浏览看看结果: 或者你可以把HttpUtility.HtmlDecode()方法移至控制器中去. 然后在视图中,只使用@Html.Raw()方法即可: 上面只是使用了Razor的语法,如果你是使用jQery来呈现数据,那又是怎样实现

ASP.NET MVC学习三-数据传递之模型绑定

一:简单的模型绑定 在ASP.NET MVC中是模型绑定来解析客户端传过来的数据的,简单的来说就更近一步来封装了获得数据的手段,让用户更方便的来获取数据了 我们来简单做一个例子 public ActionResult Index() { return View(); } [HttpPost] public ActionResult Index(string username) { ViewData["username"] = username; return View(); } 这里我

ASP.NET MVC显示异常信息

开发ASP.NET多了,它的异常信息显示也习惯了.但在ASP.NET MVC中,却是另外一番情形. 以前只习惯使用IE浏览器,现在开发ASP.NET MVC程序,为了捕获到异常信息,Firefox的firebug插件也用了起来,它却实是能帮到我们的大忙,可以参考<Internal Server Error>http://www.cnblogs.com/insus/p/3418942.html . 下面这个例子,是一个小小超简单的计算器,实现加减乘除功能.如果用户有输入异常数据时,我们就能捕获到