1

ASP.Netはまったく初めてです。Master.aspxとPage1.aspxとPage2.aspxがすべて同じディレクトリにあります。

マスター:

<asp:HyperLink NavigateUrl="Page1.aspx" runat="server" Text="Page 1" />
<asp:HyperLink NavigateUrl="Page2.aspx" runat="server" Text="Page 2" />

Page1とPage2の両方が、マスターページの上からレンダリングされます。

3つすべてが、サブドメインとしてマップされている垂直ディレクトリにあります。詳細は次のとおりです。

仮想Drectory:dirvirドメイン:dirvir.example.com

今、私がページのいずれかを開くと、次のように言います。

http://dirvir.example.com/Page1.aspx

ハイパーリンクは以下を含むようにレンダリングされます

href="../virdir/Page1.aspx"
href="../virdir/Page2.aspx"

それぞれ。

それらをクリックすると、

http://dirvir.example.com/dirvir/Page1.aspx
http://dirvir.example.com/dirvir/Page2.aspx

私が望んでいたところ

http://dirvir.example.com/Page1.aspx
http://dirvir.example.com/Page2.aspx

<a>を使用して同じことを達成できますが、コードビハインドでも必要なので、望ましくありません。

注:runatサーバーで<a>を使用する場合も、HyperLinkと同じように動作します。

4

3 に答える 3

0

以下に示すように、NavigateUrlを変更してこれを試すことができますか?

<asp:HyperLink NavigateUrl="~/Page1.aspx" runat="server" Text="Page 1" />
<asp:HyperLink NavigateUrl="~/Page2.aspx" runat="server" Text="Page 2" />

または

<asp:HyperLink NavigateUrl="/Page1.aspx" runat="server" Text="Page 1" />
<asp:HyperLink NavigateUrl="/Page2.aspx" runat="server" Text="Page 2" />
于 2010-11-17T08:33:12.803 に答える
0

Visual Studioで、ソリューションエクスプローラーのプロジェクト名をクリックします。これを行うと、プロパティウィンドウの下に、というVirtual Path値のプロパティが表示されます/dirvir。これをに変更します/

于 2010-11-17T08:33:25.090 に答える
0

サーバー側のリンクである必要がない場合は、通常のアンカータグを使用して、Webアプリケーションの仮想ディレクトリに基づいてASP.NETに正しいパスを認識させます。

<a href="<%: ResolveURL("~/Page1.aspx")%>">Page 1</a>
于 2010-11-17T08:45:31.013 に答える