是否可以在具有runatserver的母版页的head标记中这样做:
<link rel="Stylesheet" type="text/css" href='<%=Config.ResourcesDomain %>/images/style.css' />这是不起作用的,因为它会产生这样的html:
<link rel="Stylesheet" type="text/css" href="<%=Config.ResourcesDomain %>/images/style.css" />发布于 2011-11-13 04:58:40
呈现输出的原因如下:
href="<%=Config.ResourcesDomain %>/images/style.css"是因为ASP.NET将链接视为HtmlLink控件,并将href属性的内容呈现为文字。
将head部分标记为服务器控件是一种奇怪的做法,其中某些元素被视为服务器控件(即使没有显式地用runat="server"属性标记)。
删除href属性周围的引号可以解决此问题:
href=<%= Config.ResourcesDomain %>/images/style.css这样做会停止将link元素视为服务器控件,从而执行代码块并呈现正确的URL。
但是,上面写出的href值不带引号。使用以下命令,会将引号添加到链接标记:
href=<%= String.Format("'{0}'", Config.ResourcesDomain) %>/images/style.css希望这能有所帮助。
编辑
奇怪的是,如果您对href属性使用双引号,并在代码块中包含双引号,这也解决了问题:
href="<%= "" + Config.ResourcesDomain %>/images/style.css"但是,以上这些都不是特别好的解决方案,从后面的代码设置URL可能是可行的。
发布于 2013-11-25 21:42:55
我在这里找到的另一个解决方案是:https://stackoverflow.com/a/5727996/368613 --只需将代码放在PlaceHolder中:
<asp:PlaceHolder runat="server">
... your code with <%= %> tags ...
</asp:PlaceHolder>发布于 2011-11-12 19:55:05
加价
<head>
<asp:Literal ID="litHead" runat="server" />
</head>代码隐藏:
在page_load上
litHead.Text = "<link rel='Stylesheet' type='text/css' href='" + Config.ResourcesDomain + "/images/style.css' />";更新:执行此操作
<head runat="server">
<%
Response.Write("<link rel='Stylesheet' type='text/css' href='" + Config.ResourcesDomain + "/images/style.css' />");
%>
<title></title>
</head>https://stackoverflow.com/questions/8104268
复制相似问题