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 manageableones.在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
相关文章推荐
- Nop-ASP.NET MVC Area概念的应用Admin后台项目<三>
- Nop-Fluent+AutoFAC模式在ASP.NET MVC中的应用场景<四>
- Nop-Fluent+AutoFAC模式在ASP.NET MVC中的应用场景<四>
- asp.net 前台绑定后台变量方法总结:<%= %> 和<%# %>的区别
- JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,List<T>转JSON,JSON转List<T>,JSON转C#对象
- ASP.NET MVC 3: Razor’s @: and <text> syntax
- [转]asp.net 前台绑定后台变量方法总结:<%= %> 和<%# %>的区别
- New <%: %> Syntax for HTML Encoding Output in ASP.NET 4 (and ASP.NET MVC 2)
- asp.net mvc <tr>变&lt;tr/&gt; @Html.Raw 作用
- Asp.Net MVC<三> : ASP.NET MVC 基本原理及项目创建
- Asp.Net 无限分类生成表格 <后台自定义输出table>
- ASP.NET MVC (Razor)开发 <<周报与绩效考核系统>> 总结与分享
- <转>ASP.NET MVC HtmlHelper用法大全
- ASP.NET MVC 3: Razor’s @: and <text> syntax
- [转] <收录>使用Areas分离ASP.NET MVC项目
- Note on <Pro ASP.NET MVC 4> - 01
- 如何实现IEnumerable<T>和IEnumerator接口,一个ASP.NET MVC日志模型的实现
- Asp.net MVC 示例项目"Suteki.Shop"分析之---IOC(控制反转)
- Notes On <Practical ASP.NET Web API> - 01
- Asp.Net 4.0 新特性 系列 之一 从页面标记<%%>说起