2016-06-23 12 views
-2

Ich möchte zwei Funktionen mit dem gleichen Namen und verschiedenen Parametern im Controller wie folgt codieren.Methode überladen mit Routing

[Route("Home/index")] 
public JsonResult index() 
{ 
    return new JsonResult {Data = 'test1'}; 
} 

[Route("Home/index/{id}")] 
public JsonResult index(id) 
{ 
    return new JsonResult {Data = 'test2'}; 
} 

Aber ich habe einen folgenden Fehler mit diesem erhalten.

die aktuelle Anforderung für ‚Index‘ Aktion auf Regler Typen ‚Homecontroller‘ ist zwischen den folgenden Aktionsmethoden mehrdeutig: System.Web.Mvc.JsonResult Index() auf Typen application.Controllers.HomeController-System. Web.Mvc.JsonResult Index (int) auf Typen application.Controllers.HomeController

Antwort

0

fand ich die Lösung. Der Code funktioniert, aber in RouteConfig.cs muss folgender Code eingefügt werden.

routes.MapMvcAttributeRoutes(); 
0

Wie wäre es etwas, wie Sie mehrere Routen

[Route("index")] 
[Route("index/{id}")] 
public JsonResult index(int id = null) 
{ 

    if(id.HasValue()){ 
     return new JsonResult {Data = 'test2'}; 
    } 

    return new JsonResult {Data = 'test1'}; 
} 
+0

definieren möchte ich über Methodenüberladung wissen. Ich habe bereits gefunden und geantwortet. –