ResolveURL не разрешается в пользовательском элементе управления

2

Я пытаюсь использовать ResolveUrl() для установки некоторых путей в коде пользовательского элемента управления ASP.NET. Пользовательский элемент управления содержит меню навигации. Я загружаю его на страницу, загружающую главную страницу.

Когда я вызываю ResolveUrl ( "~" ) в своем пользовательском элементе управления, он возвращает "~" вместо корня сайта. Когда я вызываю его на странице, я получаю корневой путь, как ожидалось. Я прошел через отладчик и подтвердил, что ResolveUrl ( "~" ) возвращает "~" в моем коде управления пользователя.

Есть ли другой способ, которым я должен был вызвать функцию в моем пользовательском коде управления, чтобы получить корневой путь сайта?

  • 1
    Можете ли вы опубликовать код, как вы его используете?
Теги:
asp.net-3.5

4 ответа

3
Лучший ответ

Комментарий Wond выше привел меня к ответу -

Я пытался использовать ResolveUrl перед загрузкой страницы контрольной страницы. Поэтому еще не было контекстной страницы для функции.

Я переместил свой код в функцию загрузки страницы, и теперь он разрешает, как ожидалось.

Спасибо за подталкивание в правильном направлении.

2

посмотрите System.Web.VirtualPathUtility.ToAbsolute.

  • 0
    Отлично работает, спасибо.
1

Взгляните на этот пример 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

  • 0
    Я не уверен, как пост Рика Стрэла применяется. Я загружаю свой контроль на странице. Control.ResolveUrl доступен, но не разрешается.
0

Я полагаю, если он работает на странице, но не с контролем, я думаю, вы могли бы попробовать

this.Page.ResolveUrl("~");
  • 0
    Вероятно, это является частью проблемы: свойство страницы управления пусто во время выполнения.
  • 0
    Вы загружаете этот элемент управления при использовании кода позади?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню