【发布时间】:2011-09-09 20:50:29
【问题描述】:
Asp.Net 非常聪明,如果您将 ~/ 放在开头,它会尝试解析相对于它所在的控件或相对于应用程序根的超链接的 NavigateUrl。
但我有一种情况,我想明确地将 url 设置为相对路径,我根本不希望它“帮助”我。
超链接的导航 url 和 HtmlAnchor 的 href 属性都表现出这种行为。 是否可以停止这种行为 - 还是我必须手动生成标记而不使用控件?
例如
我在文件夹 [appRoot]/foo/bar 中有一个用户控件,其中包含 asp:Hyperlinks。
我正在使用页面[appRoot]/myPage.aspx 中的控件。
我希望超链接的href 属性在呈现时完全等于'donkey.gif'。
但是如果我写以下内容
<asp:Hyperlink runat="server" NavigateUrl="donkey.gif" />
那么渲染的href将是'foo/bar/donkey.gif'。
由于复杂的原因,我不想在这里讨论,使用“~/donkey.gif”不是一个选项。
另外,我不能使用ResolveUrl(string url) 来生成绝对网址。
【问题讨论】:
-
我没有清楚地知道你的问题,你能告诉我们,你试图在哪里明确指定 NavigateURL 吗?
-
您如何期望
NavigateUrl="donkey.gif"永远解析为images/donkey.gif?图片来自哪里? -
@Dan Diplo - 我的错误。问题已被编辑/更正
-
对引号的使用哈哈大笑:“帮助”我,它很有帮助! :D