1. ホーム
  2. c#

asp.netのパスでチルダ(~)を使用する。

2023-08-06 16:14:23

質問

私は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

これはデザインなのでしょうか?

どのように解決するのですか?

おっしゃるとおり、サーバーコントロールでのみ動作します。これらの基本的なオプションがありますね。

に変更します。 HyperLink として実行するために ウェブコントロール :

<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>