我有一个webdev问题
我有将近10,000个服务器端页面,所有这些页面都使用相同的样式表。我已经创建了一个新的服务器端页面,它就像一个动态菜单系统,可以帮助您快速轻松地从现有的10,000个页面中找到特定的页面。
问题是,如果使用旧的菜单系统以旧的方式访问服务器端页面,它们应该保留旧的样式表。但是,如果通过新的菜单系统访问它们,它们应该使用新的刷新样式表。
编辑一万多页似乎不是一个好的选择。解决这个问题的最佳方法是什么?
发布于 2011-06-01 17:40:58
将样式表放在app_themes文件夹中,并在web.config中进行设置。然后,您可以在这两种模式之间快速切换。或者,您可以在pre_init事件的代码中设置它
编辑: 1: Add和app_themes文件夹,创建两个带有主题名称的子文件夹(例如,default或app_themes等)
2:在web.config中设置或
3:捕获您希望更改的每个页面的page_init (或者对于母版页和许多页面都有一个基页类并覆盖page_init),并将Page.Theme =设置为您想要的主题。据我所知,最好将它保存在会话状态中。所以就像这样:
if (Session["Theme"] == null)
{
//the string is the theme as per the cleaners default
string chosenTheme = selectedTheme();
Session.Add("Theme", chosenTheme);
Page.Theme = ((string)Session["Theme"]);
}
//if the page is reloaded.
else
{
Page.Theme = ((string)Session["Theme"]);
}希望这能帮助国王
发布于 2011-06-01 17:45:06
如果你不能写一些全局服务器端代码,也不能为所有的10.000个页面创建一个全局模板,我的第一个想法是基于特定的url参数对CSS文件进行url重写。所以你可以有第二个CSS文件,如果这个参数被提交,它将被服务,如果没有,重写将服务于原始css文件。
发布于 2011-06-01 17:45:12
通常情况下,我会建议URL重写,以便将对旧样式的请求重定向到新样式。(IIS可以做到这一点,例如:http://www.iis.net/download/URLRewrite )
https://stackoverflow.com/questions/6199155
复制相似问题