来自ASP.NET的奇怪的内联代码错误

时间:2010-01-12 10:27:10

标签: asp.net asp.net-mvc

这是一个非常奇怪的。我正在尝试向我的css样式表引用添加缓存值,以使我设置的http头缓存无效。我有以下代码:

<link href="/css/Continuity2/layout.css?cache=<%=Global.CACHE_KEY %>" rel="stylesheet" type="text/css" />

以上内容如下所示,似乎没有获取内联代码:

<link href="/css/Continuity2/layout.css?cache=&lt;%=Global.CACHE_KEY %>" rel="stylesheet" type="text/css" />

更奇怪的是,我的javascript参考代码如下:

<script type="text/javascript" src="/js/ajaxhelper.js?cache=<%=Global.CACHE_KEY %>"></script>

这引用了预期:

<script type="text/javascript" src="/js/ajaxhelper.js?cache=70BE31E0-E694-45ff-A920-D6564DA2FB79"></script>

有谁知道为什么会发生这种情况?

1 个答案:

答案 0 :(得分:2)

<link>标记内的

<head>个标记会转换为HtmlLink个对象。

您可以通过以编程方式从后面的代码设置属性值,或使用控件适配器来解决此问题。

如果你将标签移到头部之外,它可能也会起作用,虽然这会影响你的页面呈现方式(加载CSS后可能出现闪光等)。

我还应该补充一点,在静态文件上使用查询字符串来强制进行版本控制通常不是理想的解决方案,因为它会阻止高性能内核模式HTTP驱动程序(http.sys)缓存文件。