web.config
所有的子目录都继承它的配置设置,Views下的web.config默认拦截url请求来匹配controller,不允许直接访问服务器文件,views文件夹外的web.config不拦截访问图片之类的服务器文件,但大部分类型的文件被禁止访问。
详见百度百科
ViewStart.cshtml
MVC中执行任何一个视图之前都要先执行Views文件夹下的 _ViewStart.cshtml 视图的内容,一般默认引用_layout.cshtml。
@{Layout = "~/Views/Shared/_Layout.cshtml";}
PS.action方法中必须以return View()来返回视图才会执行_ViewStart.cshtml 中的内容;
如果是以PowerView() 方法来返回视图的话,则不会执行_ViewStart.cshtml 中的内容。
_layout.cshtml
被_viewStart.cshtml引用后,可提供公有布局,如头部尾部布局。
/App_Start/WebApiConfig.cs
apiController(System.Web.Http)的相关配置,例如路由。
/App_Start/RouteConfig.cs
普通的控制器(System.Web.Mvc.Controller)的相关配置,例如路由
//url为http://localhost:xxx/test/action 时匹配至HomeController的Index方法
routes.MapRoute("test1", "test/Action", new { controller = "Home", action = "Index" });
//url为http://localhost:xxx/test/abc 时匹配至HomeConrtoller的abc方法
routes.MapRoute("test2", "test/{action}", new { controller = "Home" });
PS.路由的配置遵循前后顺序,一个一个往后匹配,所以上述的第二种情况({controller}/{action})要写在最后,不然其他符合的路由永远匹配不到。