ich ratlos bin ... hier ist mein Weg:ASP.NET MVC - Strange Routing-Problem, sehr einfache Route Fehlanpassungsproblem
routes.MapRoute("LangOnly", "{language}",
new { controller = "Home", action = "Root", language = "en" },
new { language = @"en|ja" });
es passt www.domain.com/en, aber nicht übereinstimmen www.domain.com/ja.
nicht wahr? Ich bin sogar so weit gegangen, irgendwelche anderen Routen zu kommentieren ... irgendwie steckengeblieben. ;/
Update: Hier ist die Root-Aktion auf dem Home-Controller.
[CompressFilter]
public ActionResult Root()
{
if (!IsEnglish)
return RedirectToAction("Index", "Biz", new { b = "" });
return Request.IsAuthenticated ? View("LoggedInRoot") : View("Root");
}
Sie stellen keine Sprachparameter, weil es, wie dies auf der Basis-Controller in OnActionExecuting, Set wird:
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();
für mich
Haben Sie den Roacked Debugger von Haacked probiert? http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx –
Haben Sie irgendwelche Routen darüber? –
Ich habe es gerade mit dem Routen-Debugger getestet (Danke für Link), es steht "True", dass es passt ... wth? – Chaddeus