一尘不染

在asp.net路径中使用波浪号(〜)

c#

我正在使用asp.net应用程序,以下链接在IE中有效,但在FF中不可用。

<a href="~/BusinessOrderInfo/page.aspx" >

波浪号不是只能在asp.net服务器控件中使用的东西。它将被实际路径替换的地方?

是否可以在锚标记中使用波浪号?如果是这样,那意味着什么?

当我在根目录时,链接有效

www.myserver.com/default.aspx, click the link, ok!

www.myserver.com/otherpart/default.aspx, click the link, not ok!

ASP.NET生成的链接是:

www.myserver.com/otherpart/~BusinessOrderInfo/page.aspx

这是设计使然吗?


阅读 264

收藏
2020-05-19

共1个答案

一尘不染

您是正确的,它仅在服务器控件中有效。您有以下基本选项:

更改为HyperLink作为Web控件运行:

<asp:HyperLink NavigateUrl="~/BusinessOrderInfo/page.aspx" Text="Whatever" runat="server" />

或者,在服务器端将锚作为HTML控件运行

<a href="~/BusinessOrderInfo/page.aspx" runat="server" >

或者,使用Page.ResolveUrl

<a href="<%= Page.ResolveUrl("~/BusinessOrderInfo/page.aspx") %>">...</a>
2020-05-19