デフォルトでは、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 エラー ページが表示されます。/IndexURLに明示的に追加する必要があります。
プロジェクト プロパティからスタートアップ ページを変更し、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。