我在主控制器中创建了两个名称不同的操作方法
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) 应该被调用。我的路线有什么问题?我该如何纠正它?如果可能,请纠正我的路线代码。谢谢