900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > ASP.NET MVC5支持区域机制 区域路由 控制器和操作方法如何创建

ASP.NET MVC5支持区域机制 区域路由 控制器和操作方法如何创建

时间:2020-03-14 18:31:56

相关推荐

ASP.NET MVC5支持区域机制 区域路由 控制器和操作方法如何创建

第1节. 区域

在模块比较多的大型项目当中,才会使用到区域,在一个 MVC 5项目中,可以存在多个区域,每个区域表示一个完整的业务模块,如一个企业有多个部门,可以使用区域来划分部门。

在每个区域中,具有一套完整的控制器、视图和模型机制,且还可以定制自己区域的路由,这样可以整体规划企业网站的URL地址,便于分发和使用。如下是区域实现的URL地址:

(1). /Home/Index

(2). /Sales/Index

(3). /Sales/Login/validate

(4). /IT/Index

(5). /IT/Login/Validate

其中第一个名称就是区域的名称,如Home、Sales、IT等都是区域中的路由根名称。

第2节. 新建区域

当使用Visual Studio 创建 MVC 5的空项目时,并没有创建区域,需要在创建项目后,再创建区域。

在 MVC 5项目名称上右击,选择“添加”“区域”,此时会弹出一个对话框,输入区域的名称,可以按部门、分公司划分区域。

Mvc 5深入编程-从0基础到深入学习 线上.NET培训课程¥178淘宝购买

在添加区域的对话框中输入新区域的名称,这里输入“AreaUser”,用来表示用户模块。

当我们创建一个区域后,Visual Studio 会自动在MVC 5项目的根目录下添加一个Areas的文件夹,表示该文件夹下全部是关于此区域的模型、视图和控制器。

通过文件结构可以看出,在“AreaUser”文件夹中,存在“Controllers”,“Models”、“Views”这3个文件夹。表示在其中可以创建相应的区域控制器、模型和视图。

并且从路由配置上看,路由URL是从区域名称AreaUser开头的。

第3节. 创建区域控制器和视图

在区域文件夹Areas下,找到“Controllers”文件夹,右击添加一个名称为RegisterUser的控制器。

可见,在区域中是可以再创建控制器的,且一个项目中多个控制器之间是独立的不受影响的,各司其责,通过路由划分开。

现在给RegisterUser控制器中的Index()方法添加一个Index视图,区域视图也是独立的。

区域视图也是存放在Views文件夹下,且也有区域_ViewStart.cshtml布局页,很完整的一套MVC机制。

有了控制器和视图,就可以正常访问了,现在运行一下上面的区域控制器中的Index()方法。

这就是区域的使用,具有独立的控制器、模型和视图,并且就连_ViewStart.cshtml也是独立的。这种模式非常适合大型的Web应用程序开发。

第4节. 路由生成URL

对于 MVC 5的路由来说,其核心功能有2个:

(1). 通过用户键入的URL地址在路由表中寻找正确的路径,然后请求并响应,并将资源返回给用户。

(2). 使用控制器和操作方法,在路由模式中匹配URL,并生成正确的URL地址。

对于URL的生成,最终都是使用RouteCollection.GetVirtualPath()的重载方法来处理的。

在上图中,使用MapRoute()方法可以配置路由模式,路由模式是根据规划好的URL地址创建的,创建的路由模式要合理,且能长久使用,不易更改。

第5节. 绑定到操作

从表面上看,我们只是请求了URL地址,然后根据路由访问到了指定的控制器和操作方法,那么路由访问到具体的操作时,其底层逻辑是什么呢?分为如下几步:

(1). 当我们输入URL地址请求时,UrlRoutingModule会在RouteTable路由表中查找请求过来URL地址。

(2). 如果在RouteTable表中能够找到,则会在路由中获取IRouteHandler接口对象。

(3). 使用接口中的GetHandler()方法,返回一个IHttpHandler对象。

(4). 把请求给ProcessRequest()方法去处理。

(5). 最后在MVC 5中,得到MvcHandler对象生成控制器和操作方法对象,这样就能找到真正要访问的资源了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。