约定目录结构
App_Data | 数据库文件 |
Content | 静态文件、样式、图片 |
Scripts | Javascript |
Model | 数据访问层,对象的定义 |
Views | .aspx、.ascx、.master |
Shared | 该目录不属于单个控制器,而是属于所有的控制器,存放母板页、CSS样式表 |
Controllers | 存放控制器,控制器命名约定XXXController的方式 |
另外需要说明的是,在ASP.NET 3.5 MVC框架空,使用Global.asax文件中的后置代码Appliction_Start()方法中设置了Url路由,以及相关的路由逻辑。
定义了两个URL路由,第八行定义了可以忽略的路由配置,也就是说,不需要路由处理程序去处理这些路由,而第十则配置了一个默认的路由。
在配置文件Web.config注册专门的HTTP模块,在httpModules节中,注册了UrlRoutingModule类,用于解析Url的路由,这是使用ASP.NET 3.5 MVC框架或者传统的ASP.NET程序的根本区别。
从上述代码中可以看出,第二行添加了一个名称为UrlRoutingModule的HTTP模块,正是注册了该模块,ASP.NET程序就会使用ASP.NET 3.5 MVC框架,将页面的请求转换为Url路由,并调用相关控制器中的相关方法,实现指定视图的输出。
执行过程
在index()方法中,返回类型是ActionResult。ActionResult是一个抽象类,因此实际返回的是该抽象类的子类,ActionResult的子类列表是
ActionResult子类列表 | 说明 |
ViewResult | 表示HTML的页面内容 |
EmptyResult | 表示空白的页面内容 |
RedirectResult | 表示定位到另一个URL |
JsonResult | 表示可以运用到AJAX程序中JSON结果 |
JavascriptResult | 表示一个JavaScript对象 |
ContentResult | 表示一个文本内容 |
FileContenResult | 表示一个可以下载的、二进制内容的文件 |
FilePathResult | 表示一个可以下载的、指定路径的文件 |
FileStreamResult | 表示一个可以下载的、流式的文件 |
相关方法与返回对象的列表
控制器中的方法 | 返回对象 |
View | ViewResult |
Redirect | RedirectResult |
RedirectToAction | RedirectToRouteResult |
RedirectToRoute | RedirectToRouteResult |
Json | JsonResult |
JavaScriptResult | JavaScriptResult |
Content | ContentResult |
File | FileContentResult、FilePathResult和FileStreamResult |