asp.net: ссылается на страницу, относящуюся к корню, в обычных не серверных элементах управления html - PullRequest
3 голосов
/ 21 июля 2010

У меня есть страница, которая глубоко вложена. И тот, который находится в корневом пути. Внутри глубоко вложенной страницы у меня есть тег привязки, который должен перейти на другую страницу (которая не находится в корне, но легко указать относительный путь к корню).

Я сделал следующее, пытаясь указать относительный корневой путь:

<a href="~/home/main.aspx">Home</a> -> Это дает мне ошибку 404. Он не может разрешить ~ часть в корневой путь.

Другой вариант - переместиться на один каталог вверх:

<a href="../../../home/main.aspx">Home</a> -> Это головная боль.

Тогда я попробовал это:

<a href="/home/main.aspx">Home</a> -> Это снова дало мне 404. Он просто удалил то, что пришло после части localhost:<port_number>/, и добавил к ней /home/main.aspx.

Как указать здесь относительный корневой путь?

PS: я предполагаю, что корневой относительный путь будет разрешен для серверных элементов управления

Ответы [ 2 ]

8 голосов
/ 21 июля 2010

Тильда (~) распознается только методом WebControl.ResolveUrl, поэтому вам придется вызывать этот метод для Page, то есть WebControl

<a href='<%=ResolveUrl("~/home/main.aspx") %>'>Home</a>
0 голосов
/ 21 июля 2010

Если вы используете элемент управления гиперссылкой asp.net, вы сможете использовать '~'.Если вы не хотите использовать управление сервером, я думаю, что вы застряли.

'/' приведет вас к корню сайта по обычной ссылке, но вы должны проверить, как установлен виртуальный каталог.до.

...