我正在开发一个网站,它将在设定的日期切换到新的风格。 该网站内置语义HTML和CSS,因此更改应该只需要CSS参考更改。 我正在与设计师合作,他们需要能够看到它的外观,以及需要能够审查当前外观的内容更新以及新外观设计进度的客户。

我打算在页脚中使用魔术查询字符串值和/或javascript链接,写出一个cookie来选择新的CSS页面。 我们正在使用ASP.NET 3.5。 有什么建议?

我应该提一下,我们正在使用IE条件注释来支持IE8,7和6。 我可以创建一个替换函数:

<link href="Style/<% GetCssRoot() %>.css" rel="stylesheet" type="text/css" />
<!--[if lte IE 8]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie8.css" rel="stylesheet" />
<![endif]-->
<!--[if lte IE 7]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie7.css" rel="stylesheet" />
<![endif]-->
<!--[if lte IE 6]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie6.css" rel="stylesheet" />
<![endif]-->

===============>>#1 票数:17 已采纳

在Asp.net 3.5中,您应该能够在标头中将Link标记设置为服务器标记。 然后在代码隐藏中,您可以根据cookie值,查询字符串,日期等设置link元素的href属性。

在您的aspx文件中:

<head>
  <link id="linkStyles" rel="stylesheet" type="text/css" runat="server" />
</head>

在守则背后:

protected void Page_Load(object sender, EventArgs e) {
  string stylesheetAddress = // logic to determine stylesheet
  linkStyles.Href = stylesheetAddress;
}

===============>>#2 票数:6

您应该查看ASP.NET主题,这正是它们的用途。 它们还允许您进行皮肤控制,这意味着为它们提供一组默认属性。

===============>>#3 票数:2

我建议将样式表选择存储在会话中,这样您就不必一直依赖查询字符串键。 您可以在Page_Load中检查会话并添加相应的样式表引用。 这听起来像是一个临时/发展的情况,所以选择简单易行的方式。

if (!String.IsNullOrEmpty(Request.QueryString["css"]))
  Session.Add("CSS",Request.QueryString["css"]);

===============>>#4 票数:-2

我会做以下事情:

www.website.com/?stylesheet=new.css

然后在您的ASP.NET代码中:

if (Request.Querystring["stylesheet"] != null) {
    Response.Cookies["stylesheet"].Value = Request.QueryString["stylesheet"];
    Response.Redirect(<Current Page>);
}

然后在哪里定义样式表:

if (Request.Cookies["stylesheet"] != null) {
    // New Stylesheet
} else {
    // Default
}

  ask by Jon Galloway translate from so

未解决问题?本站智能推荐: