如何根据url参数呈现样式?

时间:2019-06-05 11:27:20

标签: asp.net-mvc

我需要根据url参数替换css文件,sitesite/index/en需要使用不同的样式。

所以我该怎么做:

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

2 个答案:

答案 0 :(得分:2)

那非常接近,我想您只是想念ViewContext;

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

答案 1 :(得分:0)

我遇到过类似的情况,我不得不在语言之间进行切换,并且我使用cookie来存储用户选择的语言

所以您可以使用与此类似的东西

@{
   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文件,则将文件路径存储在数组中,然后循环执行arraylist,将en添加到字符串中。

希望这个答案对您有所帮助。

PS,如果您希望继续并实现后备语言以防万一出现问题,我会推荐一个专门用于验证URL中的传入参数的类,以使页面也可以正确呈现。