2017-12-19 19 views
0

RoutePrefix funktioniert nicht für mich.RoutePrefix funktioniert nicht Asp.NET MVC

-Controller

[RoutePrefix("example-name")] 
public class HomeController : Controller 
{ 
     public ActionResult Index() 
     { 
      ViewBag.Title = "Home Page"; 

      return View(); 
     } 
} 

Rout Config

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

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
     routes.MapMvcAttributeRoutes(); 
} 

Index Page

@Html.ActionLink("click me", "index","example-name"); 

Ich habe vollstes alle grundlegenden Schritte, aber ich bin immer 404 nicht

Die Ressource kann nicht gefunden werden.

Version von System.Web.Mvc.dll ist 5.2.3.0

+0

bitte se meine Antwort: Ich habe Problem mit Ihrem Code gefunden ... Sie müssen Route Attribut für die Aktion angeben, wenn Sie RoutePrefix Attribut für das Steuerelement angeben ..... Sie haben nicht [Route] auf Ihre Methode –

+0

können Sie bitte Schritt für Schritt versuchen, schlug ich vor und sobald Sie ändern, müssen Sie diese URL einfügen: http: // localhost: 8080/hometest/Index –

Antwort

-1

Put

routes.MapMvcAttributeRoutes(); 

vor allen anderen Routen Konfigurationsmethoden

+0

Nein, es funktioniert nicht. –

+0

er für Got [Route] ... das ist das Problem. –

0

Ich glaube, ich gefunden Lösung, müssen Sie folgendes tun ändert

1. wichtigste Sache, die Sie vermissen, ist: müssen Sie sp Richten Sie das Route-Attribut für die Aktion ein, wenn Sie das RoutePrefix-Attribut für das Steuerelement angeben.

[RoutePrefix("hometest")] 
    public class HomeController : Controller 
    { 
     [Route] 
     public ActionResult Index() 
     { 
      return View(); 
     } 

      [Route("About")] 
     public ActionResult About() 
     { 
      ViewBag.Message = "Your application description page."; 

      return View(); 
     } 
} 

2.your HTML-Ansicht wie diese

<li>@Html.ActionLink("hometext", actionName: "Index", controllerName: "hometest")</li> 

3.Move routes.MapMvcAttributeRoutes(); vor MapRoute wie unten.

public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
      routes.MapMvcAttributeRoutes(); 
      routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 
     } 
+0

Danke für die Hilfe, aber die Lösung funktioniert nicht für mich. Die gleichen Schritte, denen ich folge. –

+0

Problem ist, ich bin nicht in der Lage, den Controller zu finden, 404 Fehler ist für Controller, wenn die Ansicht asp.net nicht gefunden wird, zeigen verschiedene Ausnahmeansicht nicht gefunden. –

+0

nach der Änderung tun Sie einfach so: http: // localhost: 8080/hometest/Index .... hier localhost Portnummer erhalten ersetzen durch Ihre Maschine Details ... wenn Sie von Visual Studio starten nur hinzufügen/hometest/Index –

Verwandte Themen