快速业务通道

DynamicData for Asp.net Mvc留言本实例 上篇:准备工作及显示文章列表

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20

下载及新建工程

下载地址:http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx 选那个 DynamicDataMVC.zip就行,如随版本变化,请大家举一反三。

本文环境为Visual Studio 2008/Sql Server 2005

建立一个Asp.net Mvc工程:DMvc

引用Microsoft.Web.DynamicData.Mvc.DLL,及系统组件System.ComponentModel.DataAnnotations和 System.Web.DynamicData

在Web.config中的pages/namespaces添加一个add节点其namespace属性为 Microsoft.Web.DynamicData.Mvc

system.web/compilation /assemblies中添加节点add <add assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

将DynamicDataMVC中Views/Shared/ 中的ValidationSummary.ascx EntityTemplates及 FieldTemplates复制到我们新建的Mvc工程的Views/Shared文件夹

数据库准备工作

建立Articles表

打开Microsoft SQL Server Management Studio连接后对数据库点右键,新建数据库

生成Linq to Sql的dbml文件:

如果不会建,可以搜索关键字:Linq to SQL入门

这个DataContext叫做DMvcDataDataContext

为了查询方便,我们先向其中加些数据(不多写了,也就20条就够了)

INSERT INTO [Articles]([Title],[Body],[AddTime],[Author])
  VALUES(''文章1'',''内容1'',getdate(),''重典'')
INSERT INTO [Articles]([Title],[Body],[AddTime],[Author])
  VALUES(''文章2'',''内容2'',getdate(),''重典'')
INSERT INTO [Articles]([Title],[Body],[AddTime],[Author])
  VALUES(''文章3'',''内容3'',getdate(),''重典'')

让网站运行起来,显示文章列表

先来个效果图(我美工就这么地了,大家谅解一下)

就是将文章列了出来,我们下面为了这个目标而努力

首先,也是很重要的,要先在Application_Start中添加我们要自动化的DataContext

protected void Application_Start() {
  RegisterRoutes(RouteTable.Routes);
  var model = new MetaModel();
  model.RegisterContext(typeof(DMvc.Models.DMvcDataDataContext),
  new ContextConfiguration { ScaffoldAllTables = true });
  }

如果您不知道Application_Start在哪里,可以百度一下:Global.asax文件的作用

我们建一个新的Controller:ArticleController来专门进行Article的CRUD (Create/Read/Update/Delete).

我们首先建一个叫List的Action.从数据库中读取数据放入ViewData.Model中

public class ArticleController : Controller {
  /// <summary>
  /// 文章列表
  /// </summary>
  /// <param name="p">当前页号</param>
  /// <param name="ps"> pagesize</param>
  /// <returns></returns>
  public ActionResult List(int? p, int? ps) {//
  if (!p.HasValue) p = 1;//处理为空时的情况 
  if (!ps.HasValue) ps = 4;//默认一页4条 
  using (var db = new DMvcDataDataContext()) {
  var x = new PagedList<Articles>(db.Articles, p.Value, ps.Value);//读取数据 并自动分页
  return View(x);
  }
  }
  }

这里我们用到了PagedList这个类来将db.Articles自动分页,它是DynamicData的一个辅助工具,用起 来还算不错

我们再建立一个View页使之继承于PagedList<Articles>

即:

public partial class List : ViewPage<PagedList<Articles>> { }

在view中我们写如下代码:

<!--显示列表开始-->
  <%foreach (var a in ViewData.Model) { %>

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号