Как отобразить стиль по параметру url? - PullRequest
1 голос
/ 05 июня 2019

Мне нужно заменить файл CSS в соответствии с параметром URL, site и site/index/en нужно получить другой стиль.

так, как я могу сделать что-то вроде этого:

 @section css {
        @Styles.Render(@RouteData.Values["id"] == "en" ? "~/Content/holdings/en" : "~/Content/holdings" )
}

Ответы [ 2 ]

2 голосов
/ 05 июня 2019

Это довольно близко, я думаю, вам просто не хватает ViewContext;

@section css {
    @Styles.Render(ViewContext.RouteData.Values["id"].ToString() == "en" ? "~/Content/holdings/en" : "~/Content/holdings" )
}
0 голосов
/ 05 июня 2019

У меня был похожий случай, когда мне приходилось переключаться между языками, и я использовал куки для хранения выбранного пользователем языка

, чтобы вы могли использовать что-то похожее на это

@{
   var lang = "~/Content/holdings/";
   lang += Request.Cookies["key"].Value; //they key will hold they lang Code in this case en
   @Styles.Render(lang)
}

имейте в виду, что если вы не хотите использовать cookie-файл, вы также можете использовать сеанс

, если у вас много разных CSS-файлов, сохраните пути к файлам в массиве, а затем зацикливайте массив, добавляя en в строку.

Надеюсь, этот ответ поможет вам.

PS Я бы порекомендовал класс, специально созданный для этой проверки входящего параметра из URL, если вы хотите продолжить и реализовать запасной язык на случай, есличто-то идет не так, чтобы страница также правильно отображалась.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...