【ASP.NET MVC 学习笔记】- 09 Area的使用
2017-02-10 15:00
573 查看
本文参考:https://www.geek-share.com/detail/2591717300.html
1、ASP.NET MVC允许使用 Area(区域)来组织Web应用程序,这对于大的工程非常有用,每个Area代表应用程序的不同功能模块。Area 使每个功能模块都有各自的文件夹,文件夹中有自己的Controller、View和Model。
2、新建一个Area,和一个空的MVC程序一样,只是多了一个继承自AreaRegistration的类,该类如下:
public class MyAreaAreaRegistration : AreaRegistration { public override string AreaName { get { return "MyArea"; } }
//定义了一个默认路由,路由的名字一定要与整个应用程序的都不一样 public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "MyArea_default", "MyArea/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional } ); } }
RegisterArea 方法不需要我们手动去调用,在 Global.asax 中的 Application_Start 方法已经有下面这样一句代码为我们做好了这件事:
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); }
3、如果我们现在在根目录的 Controller 文件夹中添加一个名为 Home 的 Controller,Areas文件夹下同样添加一个名为Home的Controller,然后我们通过把URL定位到 /Home/Index,路由系统无法匹配到根目录下的 Controller。这就是Controller的歧义。为了避免这种歧义,需要在RouteConfig.cs文件中定义的路由中加上对应的 namespaces 参数:
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, namespaces: new[] { "MvcApplication1.Controllers" } ); }
4、Area生成链接:
//在Area中生成当前Area的URL链接 @Html.ActionLink("Click me", "About") //生成指向Support这个Area的URL链接 @Html.ActionLink("Click me to go to another area", "Index", new { area = "Support" }) //在当前Area生成指根目录某个controller的链接,那么只要把area变量置成空字符串 @Html.ActionLink("Click me to go to top-level part", "Index", new { area = "" })
相关文章推荐
- 【原创】Asp.Net MVC学习笔记之-使用AcceptVerbs标签来制定Action的响应行为
- ASP.NET_MVC使用Spring.Net.MVC依赖注入学习笔记
- 《Pro ASP.NET MVC 3 Framework》学习笔记之二十一【Area及URL架构的最佳实践】
- 【ASP.NET MVC 学习笔记】- 06 在MVC中使用Ninject
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.4.MVC的主要工具-使用Moq
- <转>ASP.NET学习笔记之在ASP.NET MVC中使用DropDownList
- 【原创】Asp.Net MVC 学习笔记之-使用Model验证
- ASP.NET MVC学习笔记-----使用自定义的View Engine
- 【原创】Asp.net MVC 学习笔记之-为什么使用Html.TextBox方法会出现异常?
- 【学习】Asp.net MVC 学习笔记之-使用MVC中的AJAX
- 【ASP.NET MVC 学习笔记】- 07 使用 Entity Framework
- Asp.Net Ajax 学习笔记15 如何使用ASP.NET Profile
- ASP.NET MVC学习笔记一
- Asp.Net Ajax 学习笔记3 UpdatePanel的使用(上)
- 学习笔记:asp.net中使用跟踪(trace)
- ASP.NET MVC Preview 4 学习笔记 Membership Authorization
- ASP.NET学习笔记[1] - iis不能使用的问题解决
- Asp.net Ajax 学习笔记5 UpdatePanel的使用(下)
- ASP.NET MVC 1.0学习笔记
- Asp.net学习笔记----使用GridView+ObjectDataSource进行自定义分页排序