-1
コントローラの前にユーザのユーザ名を設定するアプリケーションを作成するいくつかのコスチュームルートがあります。そしてまた、私は、ユーザー名の後に、いくつかのコントローラを表示したい:例えばASP MVCコスチュームルート
:ここ
localhost:44303/johndoe //it should show profile > index
localhost:44303/johndoe/Profile
localhost:44303/johndoe/Profile/Index
localhost:44303/johndoe/Profile/Setting
localhost:44303/johndoe/Activity
localhost:44303/johndoe/Activity/Index
localhost:44303/johndoe/Activity/Setting
は私のルート設定である:その場合は
routes.MapRoute(
name: "profile",
url: "{name}/profile/{action}",
defaults: new { controller = "profile", action = "Index" }
);
routes.MapRoute(
name: "Activity",
url: "{name}/Activity/{action}",
defaults: new { controller = "Activity", action = "Index" }
);
/*********** PROJECT OTHER ROUTE****************/
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default1",
url: "{controller}/{action}/{parametr1}/{parametr2}/{parametr3}",
defaults: new { controller = "Home", action = "Index", parametr1 = "1", parametr2 = UrlParameter.Optional, parametr3 = UrlParameter.Optional }
);
すべてのURLの仕事はきちんとこの除い: はlocalhost :44303/johndoe
The resource cannot be found.
エラーが発生します。
私はルートの下に追加さが、新しい問題がlocalhost:44303
のような他のルートに登場しました:
routes.MapRoute(
name: "username",
url: "{name}",
defaults: new { controller = "Profile", action = "Index", }
);
どのように私はこの問題を解決することができますか?私の主な問題は、いくつかのURLのようですlocalhost:44303/johndoe
'username'ルートと一致するURLはすべて' Default'ルートと一致します。あなたが 'Default'ルートの後に' username'ルート*を置くとき、それはより低い優先順位を持っているので、決してマッチしません。 – Dai
私はこれを行うが、私はまだ同じ問題がある – user3748973