gpt4 book ai didi

c# - head 标记中的内联代码 - ASP.NET

转载 作者:IT王子 更新时间:2023-10-29 04:00:50 26 4
gpt4 key购买 nike

是否可以在具有 runatserver 的母版页的 head 标记中执行类似的操作:

 <link rel="Stylesheet" type="text/css" href='<%=Config.ResourcesDomain %>/images/style.css' />

这是行不通的,因为它会生成这种 html:

<link rel="Stylesheet" type="text/css" href="&lt;%=Config.ResourcesDomain %>/images/style.css" />

最佳答案

输出如此呈现的原因:

href="&lt;%=Config.ResourcesDomain %>/images/style.css"

是因为 ASP.NET 将链接视为 HtmlLink 控件,并将 href 属性的内容呈现为文字。

这是将 header 部分标记为服务器控件的一个奇怪的怪癖,其中某些元素被视为服务器控件(即使没有使用 runat="server" 属性明确标记)。

删除 href 属性周围的引号可以解决问题:

href=<%= Config.ResourcesDomain %>/images/style.css

这样做会阻止链接元素被视为服务器控件,从而执行代码块并呈现正确的 URL。

但是,上面写出的 href 值没有引号。使用以下内容,将引号添加到链接标记中:

href=<%= String.Format("'{0}'", Config.ResourcesDomain) %>/images/style.css

希望这对您有所帮助。

编辑

奇怪的是,如果您对 href 属性使用双引号,并且在代码块中包含双引号,这也可以解决问题:

href="<%= "" + Config.ResourcesDomain %>/images/style.css"

但是,以上都不是特别优雅的解决方案,从代码后面设置 URL 可能是可行的方法。

关于c# - head 标记中的内联代码 - ASP.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8104268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com