Существует гораздо лучшее и масштабируемое (с точки зрения гибкости) решение этой проблемы, которое было решено при использовании Spark View Engine.
Посмотрите на Пример решения здесь в базе кода для отличного примера того, как сделать Интернационализацию или Глобализацию со Spark.Совершенно не нужно начинать делать что-то необычное с вашими ActionFilters - и этот метод работает в MVC2 и MVC3, чтобы обеспечить легкую миграцию, если это ваш план на будущее.
В ответ на ваш другой вопрос, касающийся примера из базы кода Spark, я думаю, что есть несколько способов снять шкуру с этой кошки.Одним из способов было бы сохранить культуру как часть сеанса, но в прошлых проектах, где мы этого не хотели, мы делали то, что уже сделали многие веб-сайты - мы включили культуру в качестве параметра в данные маршрута, убедившись, что этовключенный в URL:
routes.Add(new Route("{culture}/{controller}/{action}/{id}", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(
new { culture="en-us" action="Index", id="" }),
});
Подобные вещи в сочетании с модулем Spark, о котором я упоминал выше, дают вам свободу просто сосредоточиться на ваших файлах .resx, а не на изучении культуры.и маршрутизация вручную.
Тот факт, что у вас есть Index.spark
и Index.fr.spark
в одной папке представлений, означает, что обо всем позаботятся за вас.
Надеюсь, что поможет!
Всего наилучшего,
Роб