У нас есть пара веб-сайтов ASP MVC, использующих стандартные настройки шаблонов VS по умолчанию - Работая как нужно. Но теперь я хочу локализовать эти веб-сайты (они теперь на голландском, и я добавлю английский язык)
Я хотел бы использовать маршрутизацию, а не ресурс, потому что:
1. Языки будут различаться по содержанию, количеству страниц и т. Д.
2. Содержание в основном текстовое.
Мне бы хотелось, чтобы URL-адреса выглядели примерно так: www.domain.com/en/Home/Index, www.domain.nl/nl/Home/Index.
Но последний также должен работать с - www.domain.nl/Home/Index - Witch - это захватывающие URL.
Я реализовал ViewEngine областей Phil Haacks из этого поста в блоге - http://haacked.com/archive/2008/11/04/areas-in-aspnetmvc.aspx. Но только поместил англоязычный веб-сайт в области и сохранил голландский язык в старой структуре. Ведьмы служат запасным вариантом Филса по умолчанию.
Но проблема здесь в том, что мне приходится дублировать мои контроллеры для обоих языков.
Итак, я попробовал метод работы, описанный в этом шаге - ASP.NET MVC - Маршрут локализации . Работает нормально с? En? и / nl /, но не со старыми URL.
При использовании этого кода в global.asax URL без языка не работает.
public static void RegisterRoutes(RouteCollection routes)
{
//routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{culture}/{controller}/{action}/{id}", // URL with parameters
new { culture = "nl-NL", controller = "Home", action = "Index", id = "" } // Parameter defaults
);
routes.MapRoute(
"DefaultWitoutCulture", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
Я правильно пропускаю кое-что простое, но не могу заставить это работать на меня. Или есть лучший способ сделать это?