MVC有关的核心命名空间主要有以下几个
1) System.Web.Routing
URL路由在该命名空间下提供了使用URL路由功能的类,它可以将一个URL路由映射对应到Controller上,而不是映射到一个物理文件。
2) System.Web.Extensions
这是ASP.NET Ajax的命名空间,在MVC中使用Ajax功能时需要引用。
3) System.Web.Mvc
这是ASP.NET MVC最主要的命名空间。该命名空间包含一些类和接口,它们支持用于创建Web应用程序的ASP.NET MVC框架。该命名空间包含表示控制器、控制器工厂、操作结果、视图、分部视图以及模型编译等的类。
4) System.Web.Abstractions
该命名空间包含一些相关的基类,例如HttpContextBase和HttpRequestBase等。
5) System.Web.DynamicData
该命名空间包含为 ASP.NET 动态数据提供核心功能的类。另外,它还提供允许自定义动态数据行为的扩展性功能。
创建ASP.NET MVC Web应用程序项目时,MVC组件会按项目文件夹自动分开,如图1-4所示。
![]() |
图1-4 |
默认情况下,MVC应用程序目录结构包括以下文件夹。
引用
App_Data
Content
Controllers
Models
Scripts
Views
默认情况下,当ASP.NET MVC框架加载视图时,它将在"Views\控制器名称"文件夹中寻找具有请求的视图名称的ViewPage (.aspx)文件。默认情况下,Views文件夹中也有一个名为Shared的子文件夹,但该文件夹不与任何控制器对应。
Shared文件夹用于存储在多个控制器之间共享的视图。例如,我们可以将Web应用程序的母版页放在Shared文件夹中。
除了使用前面列出的文件夹之外,ASP.NET MVC Web应用程序还使用Global.asax文件中的代码来设置全局URL路由默认值,并且使用Web.config文件来配置应用程序。
路由在Global.asax文件的Application_Start方法中初始化
默认的路由表中包含一个路由,该默认路由将所有进入的请求拆分为3个单元(URL 单元是正斜杠之间的所有内容)。第一个单元映射到控制器名称,第二个单元映射到操作名称,最后一个单元映射到传递给操作名称 ID 的参数。
例如,考虑下面的URL: