是否可以在主页面的head标签中执行类似的操作,该主页面具有runatserver:
 <link rel="Stylesheet" type="text/css" href='<%=Config.ResourcesDomain %>/images/style.css' />
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为它产生这种html:
<link rel="Stylesheet" type="text/css" href="<%=Config.ResourcesDomain %>/images/style.css" />
Run Code Online (Sandbox Code Playgroud)
    jda*_*ies 72
输出的原因如下:
href="<%=Config.ResourcesDomain %>/images/style.css"
Run Code Online (Sandbox Code Playgroud)
是因为ASP.NET将链接视为HtmlLink控件,并将href属性的内容呈现为文字.
这是将头部标记为服务器控件的奇怪怪癖,其中某些元素被视为服务器控件(即使没有使用runat="server"属性明确标记).
删除href属性周围的引用可解决此问题:
href=<%= Config.ResourcesDomain %>/images/style.css
Run Code Online (Sandbox Code Playgroud)
这样做会停止将链接元素视为服务器控件,从而执行代码块并呈现正确的URL.
但是,上面写的href值没有引号.使用以下内容,将引号添加到链接标记:
href=<%= String.Format("'{0}'", Config.ResourcesDomain) %>/images/style.css
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
编辑
奇怪的是,如果对href属性使用双引号,并在代码块中包含双引号,这也解决了问题:
href="<%= "" + Config.ResourcesDomain %>/images/style.css"
Run Code Online (Sandbox Code Playgroud)
但是,以上都不是特别优雅的解决方案,从后面的代码设置URL可能是要走的路.
我在这里找到的另一个解决方案:https://stackoverflow.com/a/5727996/368613 - 只需将代码放在PlaceHolder中:
<asp:PlaceHolder runat="server">
  ... your code with <%= %> tags ...
</asp:PlaceHolder>
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           18711 次  |  
        
|   最近记录:  |