ASP.NET MVC实现区域路由

2022-04-17 14:32:06
目录
一、区域路由二、示例程序1、新建区域路由2、注册区域路由2.1、区域路由文件2.2、全局注册区域路由三、测试区域路由

一、区域路由

为了管理网站中大量的文件,在ASP.NET MVC 2.0版本中引入了一个新概念:区域(Area)。

有了区域以后,可以让我们的项目不至于太复杂而导致管理混乱。每个模块的页面都放入相应的区域内进行管理很方便。看下面的截图:

ASP.NETMVC实现区域路由

上图中有两个模块:一个是User模块,另一个是Product模块,所有关于这两个模块的Controller、Model、View都放入各自的模块内。而且从上图中可以看出:区域的功能就类似于一个小的MVC项目,虽然项目小,但是有自己的控制器、模型、视图和路由设置。

区域实际上就是应用程序内部的一个MVC结构,一个应用程序可能包含若干个MVC结构(区域)。例如:一个大型的电子商务网站可能分为若干个区域,这些区域分别代表产品,用户等模块,每个区域表示应用程序的一个独立功能。

二、示例程序

上面讲解了区域路由的概念及结构,下面从头开始创建一个区域路由来演示如何创建区域路由。

1、新建区域路由

在项目上右键添加,然后选择区域,如图所示:

ASP.NETMVC实现区域路由

然后输入区域名称:AreaAdmin,如下图所示:

ASP.NETMVC实现区域路由

点击确定,然后区域创建完成:

ASP.NETMVC实现区域路由

2、注册区域路由

2.1、区域路由文件

在MVC中添加一个区域以后,会默认帮我们注册这个区域的路由规则。例如:我们刚才创建的AreaAdmin区域,然后帮我们生成了AreaAdminAreaRegistration.cs文件,其代码如下:

using System.Web.Mvc;namespace MVCStudyDemo.Areas.AreaAdmin{    public class AreaAdminAreaRegistration : AreaRegistration     {        public override string AreaName         {            get             {                return "AreaAdmin";            }        }        public override void RegisterArea(AreaRegistrationContext context)         {            context.MapRoute(                "AreaAdmin_default",                "AreaAdmin/{controller}/{action}/{id}",                new { action = "Index", id = UrlParameter.Optional }            );        }    }}

上面的代码中,RegisterArea是实现注册路由的方法,通过把一个路由添加到区域路由集合中实现。

2.2、全局注册区域路由

上面的文件只是把路由添加到了区域路由集合中,要想使用区域路由,还需要进行全局注册区域路由,全局注册区域路由需要在Global.asax中注册,代码如下:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using System.Web.Optimization;using System.Web.Routing;namespace MVCStudyDemo{    public class MvcApplication : System.Web.HttpApplication    ault",                // 匹配规则(正则表达式)                url: "{controller}/{action}/{id}",                // 默认值   默认controller是Home action方法是Index id是可空的                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }  ,                 // 添加命名空间                 new string[] { "MVCStudyDemo" + ".Controllers" }            );        }    }}

这时在访问HomeController下面的Index方法就可以正常访问了:

ASP.NETMVC实现区域路由

到此这篇关于ASP.NET MVC实现区域路由的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。