Domanda

Ho due percorsi che voglio mappato nella mia applicazione ASP.NET MVC

  1. / utente / Login
  2. / Utente / {userid} / {username} / {action} (ad esempio / Utente / 1 / bla / profilo)

Ecco i percorsi ho definito:

    routes.MapRoute(
        "Profile",
        "Users/{userID}/{username}/{action}",
        new { controller = "Users", action = "Profile" }
    );

    routes.MapRoute(
        "Default",
        "{controller}/{action}/{id}",
        new { controller = "Home", action = "Index", id = "" }
    );

Questa grande opera finora in maggior parte dei casi. I seguenti URL lavorare da mia home page:

<%= Html.ActionLink((UsersController x) => x.Login(), "Login") %>
<%= Html.ActionLink((UsersController x) => x.Profile(1, "blah") %>

Questi mappa per (rispettosamente):

/ Utenti / Login / Users / 1 / bla

Tuttavia, una volta che ho navigato a / Users / 1 / bla, l'url di accesso si rivolge immediatamente a / Users / 1 / bla / login. Qualsiasi idea di come risolvere questo problema?

È stato utile?

Soluzione

Si desidera utilizzare <%=Html.RouteLink%>

Questo è molto simile al problema che ho avuto, che è possibile visualizzare qui

Altri suggerimenti

è il percorso colpire filtrare un Autorizza? Esiste un obbligo di effettuare il login per vedere gli utenti / pagina 1 / bla /? (. Cioè c'è un [Autorizza] attributo della classe UsersController, o sull'azione profilo?)

beh, allora, se non è un filtro Autorizza, I molto suggerisco di implementare questo Routing Debugger Strumento nel progetto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top