【发布时间】:2012-08-04 04:52:51
【问题描述】:
我在 home 控制器中创建了两个不同名称的操作方法
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)。我的路线有什么问题?我该如何纠正它?如果可能,请纠正我的路线代码。谢谢
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-routing