DynamicData for Asp.net Mvc留言本实例 上篇 准备工作及显示文章列表
来源:互联网 发布:windows电脑护眼模式 编辑:程序博客网 时间:2024/06/06 08:54
DynamicDataMVC出现也有一段时间了,一直没有正视它,今天抽一点时间了解了一下感觉还算不错。
本身下载时自带一个博客的例子,但例子略显复杂,不容易理清思路
附:本文初稿某兄入手先读,提出诸多疑问想必其它朋友可能也会有类似问题,故蓝字注明,当然大多朋友可以省去不看
下载及新建工程
下载地址:http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx 选那个DynamicDataMVC.zip就行,如随版本变化,请大家举一反三。
本文环境为Visual Studio 2008/Sql Server 2005
1、建立一个Asp.net Mvc工程:DMvc
2、引用Microsoft.Web.DynamicData.Mvc.DLL,及系统组件System.ComponentModel.DataAnnotations和System.Web.DynamicData
3、在Web.config中的pages/namespaces添加一个add节点其namespace属性为Microsoft.Web.DynamicData.Mvc
4、system.web/compilation/assemblies中添加节点add
5.将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 { ///当前页号 /// pagesize ////// 文章列表 /// ///
这里我们用到了PagedList这个类来将db.Articles自动分页,它是DynamicData的一个辅助工具,用起来还算不错
我们再建立一个View页使之继承于PagedList
即:
public partial class List : ViewPage> {}
在view中我们写如下代码:
<%foreach (var a in ViewData.Model) { %><fieldset><legend><% Html.RenderDynamicField(a, "Title"); %>legend>内容:<%Html.RenderDynamicField(a, "Body"); %><br />发表日期:<%Html.RenderDynamicField(a, "Addtime"); %>作者:<%Html.RenderDynamicField(a, "Author"); %>fieldset><% } %>分页按钮<% if (ViewData.Model.HasPreviousPage) { %><%=Html.ActionLink("第一页", "List", new { p=1},null)%><%=Html.ActionLink("上一页", "List", new { p = ViewData.Model.CurrentPage - 1 }, null)%><% }else { %>第一页 上一页<% } %>当前:<%= ViewData.Model.CurrentPage %>/共<%= ViewData.Model.TotalPages%>页<% if (ViewData.Model.HasNextPage) { %><%=Html.ActionLink("下一页", "List", new { p = ViewData.Model.CurrentPage + 1 }, null)%><%=Html.ActionLink("最后页", "List", new { p = ViewData.Model.TotalPages }, null)%><% }else { %>下一页 最后页<% } %>
虽然有点乱,但是基本上分成数据显示和分页按钮两个部分最后访问/article/List?p=2就会看到前面图中的效果
示例下载:http://files.cnblogs.com/chsword/DMvc.rar
- DynamicData for Asp.net Mvc留言本实例 上篇 准备工作及显示文章列表
- DynamicData for Asp.net Mvc留言本实例 下篇 更新
- DynamicData for Asp.net Mvc留言本实例 中篇 新建.删除.数据验证
- 拯救ASP---Quickwork For Asp MVC 开发框架-留言本实例及下载
- PHP MVC留言本实例
- PHP MVC留言本实例
- [ASP.net]XML留言本
- 简单的PHP MVC留言本实例
- asp.net mvc 显示列表数据
- asp.net mvc 显示列表数据
- 用ASP.Net编写留言本
- 用ASP.Net编写留言本
- asp.net留言本(文本格式)
- 用ASP.Net编写留言本
- ASP.NET MVC 1.0 - 1. 准备工作
- ASP.NET MVC 第一篇 准备工作
- 最简单的PHP MVC留言本实例
- asp.net 关于列表问题。点击文章标题,显示文章内容。
- 使用Windows Live Writer进行博客写作的9个实用小技巧
- 齐次坐标中的w
- 根据网卡MAC地址生成序列号
- 第一次安装sql2000挂起无法安装的问题(
- ASP.net发送email
- DynamicData for Asp.net Mvc留言本实例 上篇 准备工作及显示文章列表
- 如何在asp.net中关闭B页面时,自动刷新A页面?
- C#线程间操作无效的处理(各处收集贴)
- SUSE LINUX 安装时一些术语及符号
- 桥牌入门
- 文件上传实例(文件上传,自动重命名,自动添加文件夹)
- DynamicData for Asp.net Mvc留言本实例 中篇 新建.删除.数据验证
- 登录判断用户名和密码是否正确的代码
- 我的vimrc,简单易用。