Поиск глобальной переменной для определения корневого URL - PullRequest
0 голосов
/ 27 октября 2009

У меня есть привычка жестко кодировать URL-адреса в моем HTML:

...<a href="www.mySite.com/login">logon to your account.</a> 

Во время разработки, когда я хочу указать конкретную версию веб-приложения, я буду выполнять глобальный поиск / замену «www.mySite» на что-то вроде «myDev.mySite».

Так как эта практика стала привычной, я не могу ясно вспомнить, есть ли офигительная веская причина, по которой я не использую относительный адрес или я просто так настойчиво глуп.

Я хотел бы думать, что в .net есть нечто похожее на то, как мы определяем строки подключения, в которых я мог бы определить корневой URL-адрес как глобальную переменную, но пока не нашел возможности.

Ответы [ 3 ]

3 голосов
/ 27 октября 2009

В ASP.NET MVC используйте

<a href='<%=Url.Action("Login")%>'>login</a>

автоматически сгенерирует работающий URL.

0 голосов
/ 27 октября 2009

Ответ Яна является лучшим для ASP.NET MVC, так как вы можете независимо изменить способ отображения URL-адресов на представления. Более общее решение для любого сайта ASP.NET - использование тильды. Например,

Page.ResolveClientUrl("~/My/Path.aspx")

Будет автоматически разрешать ~ в корне веб-приложения. Или, если вы используете элементы управления ASP.NET,

<asp:HyperLink runat="server" NavigateUrl="~/My/Path.aspx" Text="Link Text"/>

При этом будет создана гиперссылка с автоматически разрешенным путем к корню сайта.

0 голосов
/ 27 октября 2009

<base href> в значительной степени делает именно то, что вы хотите.

http://www.w3schools.com/TAGS/tag_base.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...