MVC3是微软ASP.NET MVC框架最重要的一个版本,改进比较大,因为引入了非常有艺术人性化的Razor视图,给前端开发人员提高了开发效率,关于MVC3的教程,院子里面有很多人已经介绍过了,在这里就略过......
我们用MVC3进行了非常庞大的项目开发,这节的区域注册,可以说是在敏捷团队里面很重要的一部分,区域注册是MVC框架的特性,它目的就是把很多复杂的功能分成一些子系统,这样既方便管理,又方便测试,又易于分工合作,为了公司的利益,不能把开发的内容公布出来,我自己写了一个和项目一模一样的解决方案结构:
在门户下面就是对这些“子系统"进行区域注册,访问路劲就是"www.****.com/Area/Controller/Action"。
接下来在子系统的MVC子项目下创建一个类文件:
public class InventoryChangeAreaRegistration : AreaRegistration { public override string AreaName { get { return "First"; } } public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "First_default", "First/{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional }, new string[] { "Manage.ABC.First.Controllers" } ); } }
这段代码就是注册区域代码,注册后在系统执行的时候,就会根据相应的URL(Area/Conroller/Action)来访问指定的Action,由Action相应响应的页面。
AreaRegistration这个类是一个抽象类,提供了注册区域的方法和属性,这个类除了上面的一个方法一个属性外,还有非常重要的静态方法RegisterAllAreas,该方法在创建MVC时在global.asax.cs文件中,在HttpApplication 类的实例被创建时,执行Application_Start里面的代码,在这里面的代码中MVC默认写了一行
AreaRegistration.RegisterAllAreas();//注册所有区域的方法
在我创建的解决方案中,为了方便管理项目的结构:
一、创建主项目(门户)