asp.net mvc 显示列表数据

概述

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

定义Controller

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

public class BlogController : Controller
{
    [ControllerAction]
    public void Index()
    {
        // 获取所有post数据
        BlogRepository repository = new BlogRepository();

        List posts = repository.GetAll();

        // 转向视图Index,显示Post列表
        RenderView("Index", posts);
    }
}

定义View

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

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

1.使用行内代码

<%=Html.ActionLink("Home", new { action="Index"})%> |
<%foreach (Post post in ViewData) { %>
Title:<%=Html.Encode(post.Title) %>
Author:<%=Html.Encode(post.Author) %>
PubDate:<%=Html.Encode(post.PubDate.ToShortDateString()) %>
Content:<%=Html.Encode(post.Description) %>

<% } %>

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

使用ListView控件

Title:<%# Eval("Title") %> Author:<%# Eval("Author")%>
PubDate:<%# Eval("PubDate")%>
Content:<%# Eval("Description") %>


在后台代码中进行ListView的数据绑定,这里仅仅是对把视图数据绑定到了ListView上面,从数据库中获取数据交给Controller去做。
public partial class Views_Blog_Index : ViewPage>
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.ListView1.DataSource = ViewData;
        this.ListView1.DataBind();
    }
}

设置路径选择

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

void Application_Start(object sender, EventArgs e) 
{
    // Code that runs on application startup
    RouteTable.Routes.Add(
                new Route
                {
                    Url = "[controller]/[action].mvc",
                    Defaults = new { action = "Index" },
                    RouteHandler = typeof(MvcRouteHandler)
                });
}



你可能感兴趣的:(ASP.NET,MVC)