c # mvc 3, sobrecarga de ação?

Eu tenho tentado sobrecarregar meu método de índice.

Aqui estão os meus methods de indexação:

[ActionName("Index")] public ActionResult IndexDefault() { } [ActionName("Index")] public ActionResult IndexWithEvent(string eventName) { } [ActionName("Index")] public ActionResult IndexWithEventAndLanguage(string eventName, string language) { } 

Isso continua lançando:

A solicitação atual para ação ‘Index’ no tipo de controlador ‘CoreController’ é ambígua entre os seguintes methods de ação: System.Web.Mvc.ActionResult IndexDefault () no tipo ManageMvc.Controllers.CoreController System.Web.Mvc.ActionResult IndexWithEvent (System. String) no tipo ManageMvc.Controllers.CoreController System.Web.Mvc.ActionResult IndexWithEventAndLanguage (System.String, System.String) no tipo ManageMvc.Controllers.CoreController

Não é possível sobrecarregar a ação do índice com 3 methods GET diferentes?

Além disso, se for possível, qual seria o caminho correto? Eu tenho isto:

 routes.MapRoute( "IndexRoute", // Route name "{eventName}/{language}/Core/{action}", // URL with parameters new { controller = "Core", action = "Index", eventName = UrlParameter.Optional, language = UrlParameter.Optional } ); 

A URL seria semelhante a:

localhost / Core / Index

localhost / event_name / Core / Index

localhost / event_name / language / Core / Index

   

Sobrecarregar assim não vai funcionar.

Sua melhor opção é usar valores padrão e, em seguida, tornar os valores de rota opcionais (como se você já os tivesse):

 public ActionResult Index(string eventName = null, string language = null) { } 

Eu não tenho certeza se você está indo para obter a rota para olhar do jeito que você quer com uma única definição de rota embora. Você provavelmente terá que definir três rotas diferentes e mapear cada uma de volta ao seu único método Action.