3

深くネストされたページがあります。そして、ルートパスにあるもの。深くネストされたページの中に、別のページに移動することになっているアンカータグがあります(これはルートにはありませんが、ルートの相対パスを指定するのは簡単です)。

ルート相対パスを指定するために、次のことを実行しました。

<a href="~/home/main.aspx">Home</a>->これは私に404エラーを与えます。~一部をルートパスに解決できません。

もう1つのオプションは、1つのディレクトリを上に移動することです。

<a href="../../../home/main.aspx">Home</a>->これは頭痛の種です。

それから私はこれを試しました:

<a href="/home/main.aspx">Home</a>->これは私に再び404を与えました。パーツの後にあるものを削除し、。localhost:<port_number>/を付けただけ/home/main.aspxです。

ここでルート相対パスを指定する方法は何ですか?

PS:ルート相対パスはサーバーコントロールで解決されると思います

4

2 に答える 2

8

チルダ (~) はメソッドによってのみ認識されるWebControl.ResolveUrlため、このメソッドを で呼び出す必要がありますPageWebControl

<a href='<%=ResolveUrl("~/home/main.aspx") %>'>Home</a>
于 2010-07-21T13:49:51.317 に答える
0

asp.net ハイパーリンク コントロールを使用すると、'~' を使用できるようになります。サーバーコントロールを使用したくない場合は、行き詰まっていると思います。

「/」は通常のリンクでサイトのルートに移動しますが、仮想ディレクトリがどのように設定されているかを確認する必要があります。

于 2010-07-21T13:21:22.793 に答える