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

我计划使用一个神奇的querystring值和/或页脚中的javascript链接,它会写出一个cookie来 Select 新的CSS页面.我们在ASP中工作.净3.5.有什么建议吗?

我应该提到的是,我们使用IE有条件 comments 来支持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]-->

推荐答案

在Asp.net 3.5中,您应该能够将标头中的链接标记设置为服务器标记.然后,在codebehind中,您可以根据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;
}

Asp.net相关问答推荐

如何删除字符串的定义部分?

ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

是否可以使用 Membership API 更改用户名

如何使用 javascript 获取 MVC 应用程序的基本 URL

System.Web.Helpers.Crypto - 盐在哪里?

不支持关键字:服务器

如何计算/查找给定日期的周数?

返回值使用 String result=Command.ExecuteScalar() 结果返回 null 时发生错误

ASP.Net Core MVC - 自定义属性的客户端验证

如何在 ASP.NET 应用程序中使用 jQuery 捕获提交事件?

带有邮箱地址参数的 WebApi 方法从 HttpClient 返回 404

Asp.net 中的下拉列表验证使用必填字段验证器

如何将枚举类型绑定到 DropDownList?

如何从 ASP.Net 发布然后重定向到外部 URL?

svg 无法在 localhost 上的 IIS 网络服务器上运行

捕获的异常本身为 null !

ASP.NET 身份提供程序 SignInManager 不断返回失败

为什么在 MVC4 Razor 布局文件中无法识别 @Scripts 和 @Styles 命令?

System.Threading.Tasks - 限制并发任务的数量

如何判断字符串的第一个字符是否是字母,C#中的任何字母