MVC でのルーティングの優れた点の 1 つは、URL がコントローラーやアクション メソッドの名前と一致するかどうかに関係なく、あらゆるものをどこにでもルーティングできることです。RouteConfig を使用すると、これに対応するために特定のルートを登録できます。これを達成する方法をお見せしましょう。
ルート 1:
これは、ルート構成のデフォルト ルートによって処理されます。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home",
action = "Index",
id = UrlParameter.Optional });
ヒットhttp://localhost
すると、Home
コントローラーとIndex
アクション メソッドに移動します。
ルート 2:
http://localhost/<client>
対応する 1 つのルートを設定できます。http://localhost/<client>/<clients project name>
routes.MapRoute(
"Client",
"{client}/{title}",
new { controller = "Home",
action = "Client",
title = UrlParameter.Optional });
または のいずれhttp://localhost/bacon
かhttp://localhost/bacon/smokey
を押すと、Home
コントローラーとClient
アクション メソッドに移動します。title
はオプションのパラメーターであることに注意してください。これにより、両方の URL を同じルートで機能させることができます。
これをコントローラー側で機能させるには、アクション メソッドClient
を次のようにする必要があります。
public ActionResult Client(string client, string title = null)
{
if(title != null)
{
// Do something here.
}
}