Mam ten zestaw tras:Routing do działań o tych samych nazwach, ale innych parametrach
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
);
Oto klasa kontrolera:
public class IssueController : Controller
{
public ActionResult Index()
{
// todo: redirect to concrete type
return View();
}
public ActionResult Index(string type)
{
return View();
}
}
dlaczego, kiedy i poprosić http://host/issue ja dostać The current request for action 'Index' on controller type 'IssueController' is ambiguous between the following action methods:
Spodziewam się, że pierwsza metoda powinna działać, gdy nie ma żadnych parametrów, a druga po określonym parametrze.
gdzie popełniłem błąd?
UPD: możliwy duplikat: Can you overload controller methods in ASP.NET MVC?
UPD 2: ze względu na link powyżej - nie ma to jakikolwiek legalny sposób, aby działanie przeciążenia, prawda?
UPD 3: metody działania nie mogą być przeciążone na podstawie parametrów (c) http://msdn.microsoft.com/en-us/library/system.web.mvc.controller%28VS.100%29.aspx
Tak, to oczywiste, ale nie faktycznie rozwiązanie dla kwestia – zerkms
Tak, to przynieść rodzaj przeciążenia, ale zbyt brudne, więc postanowiłem zmienić nazwę drugiej metody.dzięki – zerkms