您的位置:首页 > 编程语言 > ASP

Nop-ASP.NET MVC Area概念的应用Admin后台项目<三>

2012-02-22 22:09 721 查看

ASP.NET MVC Area概念的应用Admin

For example, you might have a “Blog”area (including a bunch of controller classes related to blogging) and a “Calendar” area (another bunch ofrelated controllers). It’s a nice way of splitting a huge project into asmaller set of manageable
ones.在MVC应用中分解程序的概念,由Area组成,Admin中即NameSpace: Nop.Admin.Controllers



一个Area加入后必然的产生一个Class:

public class AdminAreaRegistration : AreaRegistration

{

public override string AreaName

{

get

{

return "Admin";

}

}

//注册Area。。。

public override void RegisterArea(AreaRegistrationContextcontext)

{

context.MapRoute(

"Admin_default",

"Admin/{controller}/{action}/{id}",

new { controller = "Home", action = "Index", area = "Admin",id = "" },

new[] { "Nop.Admin.Controllers"}

);

}

}

这个Default的名字是Area_default.AreaName属性用来定义Area的名子,RegisterArea(AreaRegistrationContext context) 方法中可以看出在浏览器的地址栏中URL的样式为Profile/{controller}/{action}/{id},是4级构结,只要将context.MapRoute(…)改为

另外就是 一定要调用到,无论在APP_start还是public static voidRegisterRoutes(RouteCollection routes)

- -

//Registering some regular mvc stuf

AreaRegistration.RegisterAllAreas();

AreaRegistration.RegisterAllAreas()方法,这个方法的目地主是找出所有继承了AreaRegistration的类,并执行RegisterArea(…)方法来完成注册

public static void RegisterAllAreas() {

RegisterAllAreas(null);

}

public staticvoid RegisterAllAreas(object state) {

RegisterAllAreas(RouteTable.Routes,new BuildManagerWrapper(),state);

}

internalstatic void RegisterAllAreas(RouteCollectionroutes, IBuildManager buildManager, object state) {

List<Type> areaRegistrationTypes = TypeCacheUtil.GetFilteredTypesFromAssemblies(_typeCacheName,IsAreaRegistrationType, buildManager);

//以上方法找出所有继承了AreaRegistration类的Type对象

foreach (Type areaRegistrationType inareaRegistrationTypes) {

AreaRegistrationregistration = (AreaRegistration)Activator.CreateInstance(areaRegistrationType);

registration.CreateContextAndRegister(routes, state);

}

}

用mvc2建立一个新项目,在网站根目录下建立Areas文件夹,在Areas文件夹建立你要区分的目录,例如本例的Website,然后继续在Website目录下增加Views目录,继续在views目录下增加需要分类管理Controller目录和建立aspx文件。使文件结构形成更清晰的分布

参考:http://msdn.microsoft.com/en-us/library/system.web.mvc.arearegistration.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: