2016-05-24 7 views
0

Ich habe einen Controller und wollen es Standardroute definieren, wie wie folgt:Standard Attribut Route nicht funktioniert

public class SignInController : Controller 
{ 
    [Route("", Name = "Default")] 
    public ActionResult Index() 
    { 
     return View(); 
    } 
} 

auf dem RoutingConfig ich auf Kommentar MapRoute

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    /*routes.MapRoute("Default", "{controller}/{action}/{id}", 
    new {controller = "SignIn", action = "Index", id = UrlParameter.Optional} 
    );*/ 
} 

Wenn ich anfangen zu Server, ich habe:

HTTP-Fehler 403.14 - verboten Der Webserver ist konfiguriert, nicht 01 aufzulistenDer Inhalt dieses Verzeichnisses.

Was mache ich falsch?

Antwort

3

Sie Attribut tun Routing aber fehlen die Konfiguration ...

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapMvcAttributeRoutes(); 

    /*routes.MapRoute("Default", "{controller}/{action}/{id}", 
     new {controller = "SignIn", action = "Index", id = UrlParameter.Optional} 
    );*/ 
}  

... die das Attribut definierten Routen für die Anwendung abbildet.

Auch wenn Sie das Attribut-Routing verwenden möchten, können Sie ein Routen-Präfix für Ihren Controller festlegen.

[RoutePrefix("SignIn")] 
public class SignInController : Controller 
{ 
    //eg: GET signin/ 
    [Route("", Name = "Default")] 
    public ActionResult Index() 
    { 
     return View(); 
    } 
} 

Wenn Sie die SignInController.Index wollen, dann auf Ihre Wurzel Kartenset die RoutePrefix zu "" (leere Zeichenkette)

bei Attribute Routing in ASP.NET MVC 5 so viel

+0

durch einen Blick. Es klappt. –

Verwandte Themen