ResolveUrl问题主页
-
24-09-2019 - |
题
好吧,
我知道这很奇怪但是当我把这个代码之间 <head runat="server"></head>
在掌握。网页,这是怎么渲染成:
<link id="ctl00_Link1" rel="shortcut icon" href="../%3C%25%20ResolveUrl(%22~/Resources/Pictures/Shared/Misc/favicon.ico%22);%20%25%3E" type="image/x-icon" />
它没有看到的东西asp.net 需要照顾。
这是原始代码:
<link id="Link1" rel="shortcut icon" href='<%=ResolveUrl("~/Resources/Pictures/Shared/Misc/favicon.ico") %>' type="image/x-icon" runat="server" />
基本上Asp.Net 并不需要护理的代码下面,呈现为一个正常html。
我怎么能得到超过这个问题?
在此先感谢...
编辑和解决
好人,是没有办法这样做。我终于想通了是因为ResolveUrl或ResolveClientUrl是唯一的工作对这些如下:
@import '<%= ResolveUrl("~/Resources/Styles/MainMaster/MainDesign.css") %>';
<script src='Resources/Scripts/Libraries/jquery-1.4.2.js' type="text/javascript"</script>
它是太文本链接,所以你需要把链接元素在身体标记,如:
<body>
<link id="iconOne" rel="shortcut icon" type="image/x-icon" href="Resources/Pictures/Shared/Misc/favicon.ico"/>
<link id="iconTwo" rel="icon" href='Resources/Pictures/Shared/Misc/favicon.ico' type="image/ico" />
</body>
解决方案
所以,你遇到了你的第一个问题的原因是因为link标签有runat="server"
这告诉asp.net把它当作一台服务器控制,而不是文字。因为它的服务器控件,您的小脚本标签(<%= %>
)是不是真的做任何事情,因为它的服务器控件的属性是把它当作文字文本。
有两种方法来处理它。首先是 ClientScriptManager 来登记启动脚本。这将使你的链接标签的身体,这是微软说,你应该做的方式,但在美学上是不是很好的内部。另一种选择是做这样的事情在你的Page_Load
var link = new HtmlGenericControl("link");
link.Attributes.Add("rel", "shortcut icon");
link.Attributes.Add("src", ResolveUrl("~/Resources/Pictures/Shared/Misc/favicon.ico"));
link.Attributes.Add("type", "image/x-icon");
Header.Controls.Add(link);
这编程建立了控制,然后将其添加到控件集合在头上,这会使你想在头标签的到底是什么。这个问题是它的多一点的工作,它能够更好地避免在后面级代码控制的集合瞎搞,如果你能摆脱它。
其他提示
这可能会使得它有点复杂得多,它需要。你有没有试过只用 ~
在图标的路径,设置 <head runat="server">
?
例如:
<head runat="server">
...
<link rel="icon" href="~/Resources/Pictures/Shared/Misc/favicon.ico"
type="image/x-icon" />
<link rel="shortcut icon" href="~/Resources/Pictures/Shared/Misc/favicon.ico"
type="image/x-icon" />
...
</head>
有关使答案: 图标不表示
不隶属于 StackOverflow