如何建立asp.net的mvc工程
2012-07-20 10:14
302 查看
DynamicDataMVC出现也有一段时间了,一直没有正视它,今天抽一点时间了解了一下感觉还算不错。
本文环境为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条就够了)
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>
即:
在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 { %>
下一页 最后页
<% } %>
<!--分页的按钮结束-->
本文环境为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条就够了)
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) { %>
<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 { %>
下一页 最后页
<% } %>
<!--分页的按钮结束-->
首先,也是很重要的,要先在Application_Start中添加我们要自动化的DataContext (转自 http://hi.baidu.com/yimeng3025/blog/item/60b24afbd30999d2b58f316f.html)[/code]
相关文章推荐
- VS2010使用.net 4.0中的ASP.NET MVC 2 模板建立工程后无法提交HTML代码解决方案一则
- VS2010使用.net 4.0中的ASP.NET MVC 2 模板建立工程后无法提交HTML代码解决方案一则
- ASP.NET MVC是如何运行的[1]: 建立在“伪”MVC框架上的Web应用
- ASP.NET MVC是如何运行的[1]: 建立在“伪”MVC框架上的Web应用 推荐
- VS2010使用.net 4.0中的ASP.NET MVC 2 模板建立工程后无法提交HTML代码解决方案一则
- ASP.NET MVC是如何运行的[1]: 建立在“伪”MVC框架上的Web应用
- VS2010使用.net 4.0中的ASP.NET MVC 2 模板建立工程后无法提交HTML代码解决方案一则
- ASP.NET MVC如何在页面加载完成后ajax异步刷新
- 请求如何进入ASP.NET MVC框架
- 如何用MEF实现Asp.Net MVC框架
- ASP.Net MVC如何访问的静态页面
- ASP.NET MVC 3.0 Razor视图如何展示多实体
- ASP.NET MVC2.0的项目如何升级到3.0??
- 介绍下Nupack如何在asp.net mvc 2中使用
- 如何提高码农产量,基于ASP.NET MVC的敏捷开发框架之移动端开发随笔二
- 学习ASP.NET MVC5框架揭秘笔记-ASP.NET MVC是如何运行的(五)
- URL Routing组件是如何与ASP.NET MVC框架组合起来的
- VS2017中建立ASP.NET MVC 4.0项目
- 如何给DropDownList控件设置样式(ASP.NET MVC)
- 如何在 ASP.NET MVC 中集成 AngularJS(2)