デフォルトでは、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
。