System.Web.Routing est utilisé par le framework MVC, mais il est également utilisé par ASP.NET Dynamic Data.
Le cadre MVC s'appuie sur le routage pour diriger une requête vers un contrôleur. Le fichier Global.asax est la partie de votre application, où vous définirez l'itinéraire pour votre application.
C'est le code de l'événement de démarrage de l'application dans Global.asax à partir de l'application MVC que nous avons créée dans le chapitre précédent.
Voici la mise en œuvre de la classe RouteConfig, qui contient une méthode RegisterRoutes.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace MVCFirstApp {
public class MvcApplication : System.Web.HttpApplication {
protected void Application_Start() {
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace MVCFirstApp {
public class RouteConfig {
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 } );
}
}
}
Ainsi, cette route définie dans l'application est l'itinéraire par défaut. Comme on l'a vu dans le code ci-dessus, lorsque vous voyez une URL arriver sous la forme de (quelque chose) / (quelque chose) / (quelque chose), alors la première pièce est le nom du contrôleur, la deuxième partie est le nom de l'action et la troisième partie est Un paramètre ID.
Route personnalisée
Vous pouvez certainement ajouter vos propres routes. Si vous n'aimez pas ces noms d'action, si vous avez des paramètres d'ID différents ou si vous avez généralement une structure d'URL différente pour votre site, vous pouvez ajouter vos propres entrées d'itinéraire.
Considérons que nous avons une page qui contient la liste des processus. Voici le code, qui sera acheminé vers la page de processus.
routes.MapRoute(
"Process",
"Process/{action}/{id}",
defaults: new { controller = "Process", action = "List ", id =
UrlParameter.Optional }
);