MVC 视图(显示数据库数据表格) -简易

已经准备两点,但是却很兴奋睡不着。
MVC中显示数据表格,真是太兴奋了,这种显示方式正式我以前所希望看到的。webform直接控件搞定,虽然是方便,总感觉没有现在这样的自定义的爽哈哈。
这只是一个很简单的例子。。。。哇哈哈,越来越好玩了。
第一种方法:在视图本身中执行所有的格式化
Movies表
Id int 主键、标识
Title nvarchar(200)
Director nvarchar(200)
DateReleased datetime
/*Linq to sql 做的model*/
Controllers/HomeContronller
[HandleError]
public ActionResult Movie()
{
var dataContext=new MovieDataContext ();
var movis = from m in dataContext.Movies select m;
return View(movis);
}
Views/Home/Movie.aspx
<table>
<tr>
<th>Id</th><th>Title</th><th>Release Date</th>
</tr>
<% foreach (Movies m in (IEnumerable)ViewData.Model)
{ %>
<tr>
<td><%= m.Id%></td>
<td><%= Html.Encode(m.Title)%></td>
<td><%= m.DateReleased%></td>
</tr>
<% } %>
</table>
第二种方法
使用局部页面(partial)作为一个模板来格式化每一个数据库记录
新建一个用户空间页面作为局部页面MovieTemplate.ascx,
这个页面必须放在Views/Shard/或者具体的控制视图文件夹内例如:Views/Home/
因为MovieTemplate类继承自这个类,ViewData.Model属性自动转换为Movie
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MovieTemplate.ascx.cs" Inherits="HtmlHelpersTest.Views.Shard.MovieTemplate" %>
<tr>
<td><%= ViewData.Model.Id %></td>
<td><%= Html.Encode(ViewData.Model.Title) %></td>
<td><%= ViewData.Model.DateReleased.ToString("D") %></td>
</tr>
后台代码,继承System.Web.Mvc.ViewUserControl
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using HtmlHelpersTest.Models;
namespace HtmlHelpersTest.Views.Shard
{
public partial class MovieTemplate : System.Web.Mvc.ViewUserControl<Movies>
{
}
}
movie.aspx视图
<table>
<tr>
<th>Id</th><th>Title</th><th>Release Date</th>
</tr>
<% foreach (Movies m in (IEnumerable)ViewData.Model)
{
Html.RenderPartial("MovieTemplate", m);
} %>
</table>
效果和第一种方法是一样的。


cordyceps on 2011-11-25 13:45
谢谢分享!