У меня есть многоязычное приложение MVC, которое, помимо прочего, имеет несколько простых страниц «CMS», которые обрабатываются контроллером страниц. Маршрут, который я определил:
routes.MapRoute(
"Page",
"Page/{name}",
new { controller = "Page", action = "Index", name = "" }
);
Также у меня есть метод, определенный в «базовом контроллере», который используется для изменения языка текущей страницы.
public ActionResult ChangeCulture(Culture lang, string returnUrl)
{
if (returnUrl.Length >= 3)
{
returnUrl = returnUrl.Substring(3);
}
return Redirect("/" + lang.ToString() + returnUrl);
}
Например, для страницы «О нас» на английском языке испанская версия доступна по следующему URL:
http://localhost/en/Page/ChangeCulture?lang=2&returnUrl=/es/Page/AboutUs
Проблема в том, что этот URL отображается на маршрут, который я определил для страниц CMS, который, очевидно, не существует. Есть ли способ, которым я могу игнорировать URL «Page / ChangeCulture», чтобы он соответствовал правильному методу, то есть указанному в «базовом контроллере»?
Спасибо
Jose