Maison  >  Questions et réponses  >  le corps du texte

asp.net-mvc - Comment effectuer le routage dans asp.net mvc?

Asp.net mvc est généralement

contrôleur/action/paramètres

Formulaire d'adresse

Mais la plupart du temps, l'adresse du site Web n'est pas un tel chemin

Par exemple :

xxxx.com/asp.net/
xxxx.com/asp.net/mvc/
xxxx.com/asp.net/webform/
xxxx.com/asp.net/ado.net/

xxxx.com/javascript/
xxxx.com/javascript/jquery/
xxxx.com/javascript/angularjs/
xxxx.com/javascript/jichu/

xxxx.com/jiaoyu/

Pour le moment, l'adresse n'est pas sous forme de contrôleur/action/paramètre

Je ne sais pas comment tracer ce genre de chemin dans asp.net mvc ? ? ?

为情所困为情所困2736 Il y a quelques jours574

répondre à tous(1)je répondrai

  • 阿神

    阿神2017-05-16 17:08:19

    Cela dépend de la manière dont vos règles de routage sont définies et de l'ordre dans lequel les itinéraires sont définis.
    Si cette requête entre dans le modèle de pipeline ASP.NET, elle ira vers la route prédéfinie pour effectuer la correspondance. Lorsqu'elle rencontrera la première route correspondante, elle renverra directement le résultat du routage.
    Par exemple, la première règle de routage de l'itinéraire par défaut est :

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

    xxxx.com/asp.net/ correspondra à cette règle de routage, controller="asp.net", action="Login";
    xxxx.com/asp.net/mvc/ correspondra également à cette règle de routage, controller="asp.net", action="mvc";

    Supposons que vous définissiez une autre règle de routage, et que cette règle de routage se trouve juste avant la règle de routage :

        routes.MapRoute(
            name: "asp.net",
            url: "asp.net/{controller}/{action}/{id}",
            defaults: new { controller = "User", action = "Link", id = UrlParameter.Optional }
        );
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Admin", action = "Login", id = UrlParameter.Optional }
        );
    

    xxxx.com/asp.net/ correspondra à cette règle de routage, controller="User", action="Link";
    Cependant, xxxx.com/cast/ ne correspondra pas à la première règle de routage, mais continuera à correspondre à la deuxième règle de routage. À ce moment-là, la correspondance sera réussie, controller="cast", action="Login"

    .

    Il est recommandé de lire le livre « Maîtriser le framework ASP.NET MVC3 ». Le chapitre 11 des règles de routage fournit une analyse et une introduction à ce problème.

    répondre
    0
  • Annulerrépondre