Относительный путь ASP.NET

Я запутался в относительном пути ASP.NET, пожалуйста, кто-нибудь может помочь?

На главной странице я дал ссылку на ссылку:

<a href="~/Account/Login.aspx">Login</a>

Из официальной документации ASP.NET я прочитал:

В следующем примере показан оператор ~, используемый для указания корневого пути для изображения при использовании элемента управления Image Server. В этом примере файл изображения считывается из папки "Изображения", которая расположена прямо под корнем веб-приложения, , независимо от того, где на веб-сайте находится страница.

<asp:image runat="server" id="Image1" ImageUrl="~/Images/SampleImage.jpg" />

С разметкой Login, когда я нажимаю ссылку со страницы в папке /Account, я перенаправлен на:

/Account/~/Account/Login.aspx

Почему? Почему? Ч

Ответы

Ответ 1

Потому что вы используете его непосредственно в разметке, а не в контроле сервера. Что-то простое, как это должно исправить:

<a runat="server" href="~/Account/Login.aspx">Login</a>

В принципе, ссылка на ссылку ~ должна быть переведена на сервер, так как это ссылка на путь к серверу каталога приложения. Обычная разметка HTML не обрабатывается на сервере, она просто доставляется как есть клиенту. Только обработанный сервером код преобразует путь ~ к разрешению.

Ответ 2

используйте эту команду

<a href="<%=Page.ResolveUrl("~/product.aspx")%>" >Link To Products</a>

Ответ 3

Вы можете использовать ~ при обращении к URL-адресам внутри элементов управления ASP.NET Server. Вы используете его в теге <a>, который представляет собой простой HTML-код, который ничего не знает о ~. используйте ' "/Images/SampleImage.jpg" ' вместо