Comment peux j’ai minuscules, plus souligner si possible, les itinéraires dans ASP.NET MVC ? Alors que j’aurais appeler
et, si possible, appelle
?
Tout cela tout en utilisant des modèles tels que `` .
Comment peux j’ai minuscules, plus souligner si possible, les itinéraires dans ASP.NET MVC ? Alors que j’aurais appeler
et, si possible, appelle
?
Tout cela tout en utilisant des modèles tels que `` .
Avec 4,5 System.Web.Routing vous pouvez mettre en œuvre ce simple en définissant la propriété LowercaseUrls de RouteCollection :
Aussi, en supposant que vous faites cela pour des raisons de référencement vous souhaitez rediriger les URL entrantes en minuscules (comme dit dans la plupart des liens sur cet article).
Ces deux tutoriels aidé quand j’ai voulu faire la même chose et fonctionnent bien :
http://www.coderjournal.com/2008/03/force-MVC-route-URL-LowerCase/ http://goneale.com/2008/12/19/LowerCase-route-URLs-in-ASPNET-MVC/
EDIT : Pour les projets avec les zones, vous devez modifier la méthode GetVirtualPath() :
J'ai trouvé ce à Nick Berardi du Codeur Journal, mais il n'a pas d'informations sur la façon de mettre en œuvre l' LowercaseRoute
classe. Donc reposter ici avec des informations supplémentaires.
Tout d'abord étendre le Route
classe LowercaseRoute
public class LowercaseRoute : Route
{
public LowercaseRoute(string url, IRouteHandler routeHandler)
: base(url, routeHandler) { }
public LowercaseRoute(string url, RouteValueDictionary defaults, IRouteHandler routeHandler)
: base(url, defaults, routeHandler) { }
public LowercaseRoute(string url, RouteValueDictionary defaults, RouteValueDictionary constraints, IRouteHandler routeHandler)
: base(url, defaults, constraints, routeHandler) { }
public LowercaseRoute(string url, RouteValueDictionary defaults, RouteValueDictionary constraints, RouteValueDictionary dataTokens, IRouteHandler routeHandler) : base(url, defaults, constraints, dataTokens, routeHandler) { }
public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
VirtualPathData path = base.GetVirtualPath(requestContext, values);
if (path != null)
path.VirtualPath = path.VirtualPath.ToLowerInvariant();
return path;
}
}
Modifiez ensuite l' RegisterRoutes
méthode de Mondial.asax.cs
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.Add(new LowercaseRoute("{controller}/{action}/{id}",
new RouteValueDictionary(new { controller = "Home", action = "Index", id = "" }),
new MvcRouteHandler()));
//routes.MapRoute(
// "Default", // Route name
// "{controller}/{action}/{id}", // URL with parameters
// new { controller = "Home", action = "Index", id = "" } // Parameter defaults
//);
}
J'aimerais cependant savoir un moyen d'utiliser les routes.MapRoute...
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.