none
Redirect и локализация в MVC3 RRS feed

  • Вопрос

  • Доброго времени суток.

    Есть MVC3 приложение, поддерживающее локализацию с помощью файлов ресурсов.

    Маршрут прописан вида:

     routes.MapRoute("Default", "{culture}/{controller}/{action}/{id}", new { controller = "Home", action = "Index", culture = "ru-RU", id = UrlParameter.Optional }, new { culture = @"(ru-RU)|(en-US)" });
    

    При обращении к сайту, в адресной строке отображается адрес вида: http://mysite.ru

    Только при переходе по любой ссылке адрес становиться правильным: http://mysite.ru/ru-RU/news

    Подскажите, пожалуйста, как лучше сделать, чтобы при первом обращении к сайту у пользователя отображался правильный адрес вида: http://mysite.ru/ru-RU/

    Есть предположение, что при заходе нужно сделать redirect и подставить правильный адрес, но как реализовать это - не знаю.

    Заранее благодарю за ответ.

     

    9 июля 2011 г. 18:09

Ответы

  • Можно в Home контроллере проверять url на наличие локали и если ее нет, то выполнять редирект на локаль по умолчанию. Например:

        public ActionResult Index()
        {
          if (Request.Url.AbsolutePath == "/")
          {
            return Redirect("/ru-RU/");
          }
    
          ViewBag.Message = "Welcome to ASP.NET MVC! (" + Request.Url.AbsolutePath + ")";
    
          return View();
    
        }
    


    Для связи [mail]
    • Помечено в качестве ответа helvar 11 июля 2011 г. 7:04
    11 июля 2011 г. 6:40
    Модератор

Все ответы

  • Можно в Home контроллере проверять url на наличие локали и если ее нет, то выполнять редирект на локаль по умолчанию. Например:

        public ActionResult Index()
        {
          if (Request.Url.AbsolutePath == "/")
          {
            return Redirect("/ru-RU/");
          }
    
          ViewBag.Message = "Welcome to ASP.NET MVC! (" + Request.Url.AbsolutePath + ")";
    
          return View();
    
        }
    


    Для связи [mail]
    • Помечено в качестве ответа helvar 11 июля 2011 г. 7:04
    11 июля 2011 г. 6:40
    Модератор
  • Спасибо за решение!
    11 июля 2011 г. 7:04