初创ASP.NET 3.5 MVC应用项目
约定目录结构
| 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 |




浙公网安备 33010602011771号