默认情况下,MVC 4 应用程序具有以下路由ProjectFolder\App_Start\RoutConfig.cs
:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
在浏览器中,任何调用http://host:port/controller/
都会将您带到http://host:port/controller/Index
.
现在,如果您想更改起始页,可以说SomeController\MyAction
,您可以将其更改为:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "SomeController", action = "MyAction", id = UrlParameter.Optional }
);
但随后http://host:port/controller/
不会显示http://host:port/controller/Index
,而是显示 404 错误页面。您需要/Index
在 URL 中显式附加。
如果您从项目属性更改启动页面并将路由保留到 Home\Index,那么一切都会正常工作,除了 URL 根目录http://host:port/
不会显示启动页面。当您运行应用程序时,它将在 URL 中附加启动页面名称。但是,如果您<a href="/" title="home">Home</a>
在应用程序中的某处有相对超链接,它不会带您到所需的主页
有没有办法配置启动页面“SomeController\MyAction”;根 URL 总是指向它并且Index
是每个控制器的默认视图?
相当于 Ruby on Rails 的路线:
root :to => "some_controller#my_action"
它将默认视图绑定到index
操作。