Я пытаюсь использовать ResolveUrl() для установки некоторых путей в коде пользовательского элемента управления ASP.NET. Пользовательский элемент управления содержит меню навигации. Я загружаю его на страницу, загружающую главную страницу.
Когда я вызываю ResolveUrl ( "~" ) в своем пользовательском элементе управления, он возвращает "~" вместо корня сайта. Когда я вызываю его на странице, я получаю корневой путь, как ожидалось. Я прошел через отладчик и подтвердил, что ResolveUrl ( "~" ) возвращает "~" в моем коде управления пользователя.
Есть ли другой способ, которым я должен был вызвать функцию в моем пользовательском коде управления, чтобы получить корневой путь сайта?
Комментарий Wond выше привел меня к ответу -
Я пытался использовать ResolveUrl перед загрузкой страницы контрольной страницы. Поэтому еще не было контекстной страницы для функции.
Я переместил свой код в функцию загрузки страницы, и теперь он разрешает, как ожидалось.
Спасибо за подталкивание в правильном направлении.
Взгляните на этот пример MSDN. http://msdn.microsoft.com/en-us/library/system.web.ui.control.resolveurl.aspx. и веб-журнал Rick Strahl http://www.west-wind.com/Weblog/posts/154812.aspx
Я полагаю, если он работает на странице, но не с контролем, я думаю, вы могли бы попробовать
this.Page.ResolveUrl("~");