2010-01-30 83 views
3

我的应用程序路径... <中用runat = “服务器的” href = “〜/家” >ASP.NET〜/不解析为 “/”

...被解析为“家”(而不是“/首页“)。重写URL后,“/ Blah/Blah”,所有的“〜/”链接都是相对于重写的:/ Blah/Home

有没有办法强制根目录为“/”?

+0

您应该选择一个答案作为解决方案。 – 2010-02-01 14:03:21

回答

1

为什么不直接写相对于根('/')的链接而不是'〜/',如果你的应用程序不在域的根目录,那么'〜/'链接将解析到应用程序的根目录

+0

谢谢。我相信这是我会做的。 – shxo 2010-01-30 15:26:57

0

如果您确定,对于有问题的链接,您将始终位于“/”的根目录,那么最简单的方法是更改​​<a> href读取“/ Home”而不是“〜/ Home”...这样,asp.net就不会解析它并将其改为使用App/VDir作为起点。

+0

感谢您的意见。 “/“ 它是。 – shxo 2010-01-30 15:27:32

0

如果你使用像一个标准的HTML标记,然后通过

<a href="<%=ResolveUrl("~/Home")%>">...</a> 

包括URL,或使用asp.net链接:

<asp:Hyperlink NavigateUrl="~/Home" runat="server" ID="HomeLink" Text="..." /> 

这样一来,所有的链接将指向正确的URL ,即使Web应用程序将安装在子目录中。

<% %>是asp.net的内联编码,<%= %>输出内容,在这种情况下结果为ResolveUrl

0

〜/在Web控件中被转换,因为在其他情况下,您需要使用ResolveClientUrl来做到这一点。

对于超链接控件,它会自动为您正确映射。