ASP.Net HyperLink NavigateUrl изменяется после рендеринга в HTML Anchor - PullRequest
1 голос
/ 17 ноября 2010

Я новичок в 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" />

и страница 1, и страница 2 отображаются на главной странице.

все три находятся в вертикальном каталоге, который отображается как поддомен, вот подробности:

Виртуальный каталог: 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

Я могу добиться того же, используя , но они мне тоже нужны в коде, так что это нежелательно.

Примечание: использование с сервером runat также ведет себя так же, как HyperLink делает.

Ответы [ 3 ]

0 голосов
/ 17 ноября 2010

В Visual Studio щелкните имя проекта в обозревателе решений.Как только вы это сделаете, вы найдете свойство в окне свойств с именем Virtual Path, которое будет иметь значение /dirvir.Измените это на /

0 голосов
/ 17 ноября 2010

Если вам не нужна ссылка на стороне сервера, просто используйте обычный тег привязки и позвольте ASP.NET определить правильный путь на основе вашего виртуального каталога для вашего веб-приложения:

<a href="<%: ResolveURL("~/Page1.aspx")%>">Page 1</a>
0 голосов
/ 17 ноября 2010

Можете ли вы попробовать это, как указано ниже, изменить 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" />
...