一、ASP.NET MVC简介:
Asp.net Mvc 是微软官方提供的Mvc模式编写Asp.net Web应用程序的一个框架,它由Castle的MonoRail而来.MVC (ModelViewController)把一个web应用分成了三个部分:model view和controller。ASP.NET MVC框架提供了一个可以代替asp.net web窗体的基于mvc的应用。
ASP.NET MVC概述·mvc的优点:
1.通过把项目分成model view和controller,使得复杂项目更加容易维护。
2.没有使用view state和服务器表单控件,可以更方便的控制应用程序的行为。
3.应用程序通过controller来控制程序请求,可以提供丰富的url重写。
4.对单元测试的支持更加出色。
5.在团队开发模式下表现更出众。
ASP.NET MVC概述·web窗体的优点:
1.采用事件驱动模式来控制应用程序请求,由大量服务器控件支持
2.采用页面控制机制,可以为单个页面添加事件处理函数。
3.使用view state和服务器端页面,使管理页面状态信息更加轻松。
4.对人数较少的想使用服务器端控件的开发团队,使用起来更加方便。
5.开发起来比mvc模式要轻松简单一些。
二、实现ASP.NET MVC的具体步骤:
1、创建项目:我们首先创建一个主asp.net mvc项目,再创建一个子的项目和一个类库项目,如下图所示:
图一:项目基本架构
注: MvcAppMain为主WEB项目,AreasDemo为子项目,他们都是普通的ASP.NET MVC3项目,MVCControllers是一个类库项目。
2、添加测试的Controller和Action:
在子项目AreasDemo中添加一个Action,然后添加上相对应的视图,然后再在主项目MvcAppMain中添加一个HomeController和相应的Index.cshtml视图文件,为了测试再在主项目中添加一个Admin区域,添加完成后项目构架截图如下图所示:
图二:完整的项目架构图
注:当你在主项目里面添加一个Admin区域之后,默认会创建一个Areas文件夹,并且内部就是存放区域项目的界面。
3、在子项目中添加Areas Registration类文件:
为子项目AreasDemo添加一个Areas Registration类文件代码如下文所示(仅供参考):
public class AreasDemoRegistration : AreaRegistration//在主站点注册区域
{
public override string AreaName
{
get { return "AreasDemo"; }
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"AreasDemo_default",//路由名字,必须唯一
"AreasDemo/{controller}/{action}/{id}",//路由规则
new { action = "Index", id = UrlParameter.Optional }//默认值
);
}
}
这个类实现了AreaRegistration基类。我们注册区域路由就会在Global.asax的Application_Start事件方法中去执行注册到主站点的路由表中。Application_Start代码:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();//注册所有区域
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
经过以上几步基础的架构算是搭建好了,我们下面开始部署项目。
4、项目的部署:
1)我们需要将子项目引用到主项目上,我们将主项目发布到一个磁盘文件夹中。
2)将子项目的AreasDemo的Views文件夹拷贝到主项目发布后的文件夹对应的Areas\AreasDemo文件夹下。其中AreasDemo是areaname,此文件夹需要我们自己手动创建。
3)看下子项目中是否有AreasDemo.dll动态链接库,如果有将其拷贝到主文件夹对应位置,最后再将主项目文件夹发布为IIS的一个网站。
4)演示效果:
图三:演示效果图
本文转自护卫神技术频道:
http://tech.huweishen.com/gongju/1741.html。