ASP.Net Control.ResolveUrl quirks



我有一个奇怪的问题。解析脚本元素的 url 时,src 元素必须位于 ' ' 中。对于链接元素,href 必须在 " " 中,否则代码块由于某种原因被渲染成 html。下面的代码片段更清楚地说明了问题。为什么会这样呢?

<script src='<%:Page.ResolveUrl("~/JavaScript/jQuery/jquery-1.7.2.js") %>' type="text/javascript"/>
<link href="<%:Page.ResolveUrl("~/CSS/Foundation/foundation.css") %>" rel="stylesheet" type="text/css" />

编辑刚刚注意到脚本元素 src 标签在括在"或""中时工作正常,但链接元素 href 标签似乎仅在括在"中时才有效。

它不起作用,因为您在脚本中使用了 。 相反,您应该这样做(它将使用单引号和双引号:

<link href="<%= ResolveUrl("~/Styles/site.css")%>" rel="stylesheet" type="text/css" />

在上面观察到我使用了 = 而不是

或者,在某些情况下,如果您(例如)在母版页的代码隐藏中调用Page.Header.DataBind();,并且您正在母版页的<head>中输出引用,您甚至可以使用 #

<link href="<%# ResolveUrl("~/Styles/site.css")%>" rel="stylesheet" type="text/css" />

最新更新