Frage

lese ich eine Menge Post, und ich nicht mein mystake sehen.

Kann einige Körper mir bitte helfen.

Es ist mein global.asax

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");                
           routes.MapRoute(
                "Default",                                              // Route name
                "{controller}/{action}/{id}",                           // URL with parameters
                new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
            );
           routes.MapRoute("UserName", "Account/{action}/{username}",
          new { action = "EditProfile", controller = "Account" });   

        }

        protected void Application_Start()
        {
            RegisterRoutes(RouteTable.Routes);
        }

Wenn ich

<%= Html.ActionLink("Edit Account", "EditProfile", "Account", new { username = Html.Encode(Page.User.Identity.Name) },null) %>

Ich habe diese url

http: // localhost: 8458 / Account / EditProfile username = cboivin

Wenn ich versuche, die URL direkt zu nennen wie http: // localhost: 8458 / Konto- / EditProfile / cboivin

nicht funktionieren ...

Es ist meine Methode in meiner Account

 public ActionResult EditProfile(string username)
        {

            return View(ServiceFactory.UserAccount.GetUserByUserName(new GetUserByUserNameArgs(username)));
        }

Ich weiß nicht, wo mein Fehler ist. Kann mir jemand helfen ? Danke.

War es hilfreich?

Lösung

Die Routen werden gelesen von oben nach unten, Ihre „alle fangen“ allgemeine Route braucht letzte sein.

routes.MapRoute("UserName", "Account/{action}/{username}",
          new { action = "EditProfile", controller = "Account" });


routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
        );

Andere Tipps

Versuchen Sie entfernen:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

Und denken Sie daran allgemeinere Routen an der Unterseite der Routing-Tabelle sein sollten, während spezifischere Routen oben kommen sollten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top