Je suis perdu ... voici mon itinéraire:ASP.NET MVC - problème de routage étrange, très simple problème d'incompatibilité d'itinéraire
routes.MapRoute("LangOnly", "{language}",
new { controller = "Home", action = "Root", language = "en" },
new { language = @"en|ja" });
il correspond www.domain.com/en, mais ne correspond pas correspondre www.domain.com/ja.
huh? Je suis même allé jusqu'à commenter d'autres routes ... un peu coincé. ;/
Mise à jour: Voici l'action root sur le contrôleur Home.
[CompressFilter]
public ActionResult Root()
{
if (!IsEnglish)
return RedirectToAction("Index", "Biz", new { b = "" });
return Request.IsAuthenticated ? View("LoggedInRoot") : View("Root");
}
Il ne prend pas un paramètre de langue, car il est en cours mis sur le contrôleur de base OnActionExecuting, comme ceci:
var l = (RouteData.Values["language"] != null) ? RouteData.Values["language"].ToString() : string.Empty;
if (string.IsNullOrEmpty(l))
l = "en";
if (l.Contains("en"))
{
IsEnglish = true;
l = "en";
}
else
{
IsEnglish = false;
l = "ja";
}
ViewData["lang"] = l.ToLower();
Language = l.ToLower();
Avez-vous essayé le débogueur de route de Haacked? http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx –
Avez-vous des routes au-dessus de cela? –
Je viens de le tester avec le débogueur de route (merci pour le lien), il dit "vrai" qu'il correspond ... wth? – Chaddeus