2017-04-03 3 views
2

Kann der Routing-Controller-Name in MVC geändert werden? In 5 MVC hätte ich dies getan:Andere Routenvorlage für Controller verwenden

[RoutePrefix("MySpecialSauce")] 
public class ProductsController : Controller 
{ 
    [Route("GetBy/{id}")] 
    public MyObject GetBy(int id) 
    { 
     return something(id); 
    } 
} 

Jetzt alles, was ich finden kann den Standardnamen des Controllers zu verwenden ist:

[Route("[controller]")] 
public class ProductsController : Controller 
{ 

    [HttpGet("GetBy/{id}")] 
    public MyObject GetBy(int id) 
    { 
     return something(id); 
    } 
} 

Ich mag für meine Route einen anderen Namen verwenden, als die tatsächlichen Name des Controllers Wie machst Du das?

Antwort

4

Sie können in Kern

[Route("MySpecialSauce")] 
public class ProductsController : Controller { 

    [HttpGet("GetBy/{id:int}")]//Matches GET MySpecialSauce/GetBy/5 
    public MyObject GetBy(int id) { 
     return something(id); 
    } 
} 

[controller] ist ein Token-Ersatz mit Routen Vorlage zu helfen, das gleiche zu tun. Es ist nicht zwingend erforderlich.

Quelle Token replacement in route templates ([controller], [action], [area])

Der Einfachheit halber Attribut Routen durch Token Austausch unterstützen ein Token in quadratischen Klammern ([, ]) umschließt. Die Token [action], [area] und werden durch die Werte Aktionsname, Bereichsname und Steuerungsname aus der Aktion ersetzt, in der die Route definiert ist.

Verwandte Themen