Я в растерянности... вот мой маршрут:
routes.MapRoute("LangOnly", "{language}",
new { controller = "Home", action = "Root", language = "en" },
new { language = @"en|ja" });
он соответствует www.domain.com/en, но не соответствует www.domain.com/ja.
Хм? Я даже зашел так далеко, что прокомментировал любые другие маршруты... как-то застрял. ;/
Обновление: вот корневое действие на домашнем контроллере.
[CompressFilter]
public ActionResult Root()
{
if (!IsEnglish)
return RedirectToAction("Index", "Biz", new { b = "" });
return Request.IsAuthenticated ? View("LoggedInRoot") : View("Root");
}
Он не принимает параметр языка, потому что он устанавливается на базовом контроллере в OnActionExecuting, например:
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();