ホームコントローラーに別の名前で2つのアクションメソッドを作成しました
public ActionResult Default()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View("index");
}
public ActionResult Index(int a)
{
ViewData["Message"] = "Welcome to ASP.NET MVC! and Your Age is " + a;
return View();
}
私のルーティングコードは次のようになります。
routes.MapRoute(
"Default1", // Route name
"{Home}/{ID}", // URL with parameters
new { controller = "Home", action = "Index", id =UrlParameter.Optional});
routes.MapRoute(
"Default2", // Route name
"{Home}", // URL with parameters
new { controller = "Home", action = "Default" }
);
routes.MapRoute(
"Default", // Route name
"{controller}", // URL with parameters
new { controller = "Home", action = "Default" }
);
しかし、まだ問題が発生しています
http://localhost:7221のような URL を入力すると、ホームが来て Default() メソッドが呼び出されますが、次のような URL を入力すると
http://localhost:7221/Homeその後、エラーが発生します。この状況を処理するために、次のようなルートを定義します
routes.MapRoute(
"Default2", // Route name
"{Home}", // URL with parameters
new { controller = "Home", action = "Default" }
);
しかし、それは機能していません.......理由を教えてください。
http://localhost:7221/Home/88のような URL を入力すると、 Index(int a) メソッドが呼び出されますが、エラーが発生します。どうして
URL http://localhost:7221またはhttp://localhost:7221/Homeを入力すると、 Default() が呼び出され、いつ入力するかが必要です
http://localhost:7221/Home/88の場合、Index(int a) を呼び出す必要があります。私のルートで何が問題になっていますか?どうすれば修正できますか?可能であればルートコードを修正してください。ありがとう