У меня есть этот набор маршрутов:
routes.MapRoute(
"IssueType",
"issue/{type}",
new { controller = "Issue", action = "Index" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
Вот класс контроллера:
public class IssueController : Controller
{
public ActionResult Index()
{
// todo: redirect to concrete type
return View();
}
public ActionResult Index(string type)
{
return View();
}
}
почему, когда я запрашиваю http://host/issue, я получаю The current request for action 'Index' on controller type 'IssueController' is ambiguous between the following action methods:
Я ожидаю, что первый метод должен действовать, когда нет параметров, а второй - при заданном параметре.
где я совершил ошибку?
UPD: возможный дубликат: Можете ли вы перегрузить методы контроллера в ASP.NET MVC?
UPD 2: из-за ссылки выше - нет никакого законного способа сделать перегрузку действий, не так ли?
UPD 3: методы действий не могут быть перегружены на основе параметров (c) http://msdn.microsoft.com/en-us/library/system.web.mvc.controller%28VS.100%29.aspx