Asp.Net MVC - Проверьте значение маршрута в URL - PullRequest
1 голос
/ 29 февраля 2012

Вопрос о домашней странице моего сайта.Сайт локализован на 2 языка, язык по умолчанию - IT, альтернативный - EN.

Моя домашняя страница:

www.mysite.com

Когда выбран английский, адрес:

www.mysite.com/en

Параметр {language} находится в моем RouteData.

Конечно, если я наберу www.mysite.com/it, он будет работать, и он будет аналогичен www.mysite.com

В моем методе Action я должен проверить, присутствует ли в URL-адресе строка 'it', и, если она есть, сделать PermanentRedirect на адрес www.mysite.com.

Я мог бы сделать этопросматривая строку Request.RawUrl, но мне интересно, есть ли лучший способ сделать это.

Спасибо

1 Ответ

0 голосов
/ 01 марта 2012

Вы можете сделать это, используя привязку модели - просто добавьте параметр к своему действию.Обратите внимание, что в этом случае параметр language может также извлечь свое значение из строки запроса или значений формы, только если он не будет присутствовать в URL.

    public ActionResult Index(string language)
    {
        if (string.IsNullOrWhiteSpace(language))
        {
           ///
        }
        return View();
    }

Или альтернативным способом извлеките маршрут вручнуюзначение.В вашем действии

        string language = RouteData.Values["language"].ToString();
        if (string.IsNullOrWhiteSpace(language))
        {
           ///
        }
...