我需要根据url参数替换css文件,site
和site/index/en
需要使用不同的样式。
所以我该怎么做:
@section css {
@Styles.Render(@RouteData.Values["id"] == "en" ? "~/Content/holdings/en" : "~/Content/holdings" )
}
答案 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中的传入参数的类,以使页面也可以正确呈现。