ASP.NET, javascript, ResolveClientUrl

ASP.NET — пути для javascript

На первом этапе знакомства с ASP.NET был я сильно удивлен непродуманностью управления путями к клиентским сценариям. По причине неизвестных мне особенностей самой технологии или ее разработчиков рендеринг корркетно обрабатывал только ссылки стилей при использовании значка корня «~». С javascript сценариями все было довольно плохо. в первый раз получилось их подрубить только при вводе относительного пути. Но при добавленнии masterpage и нескольких подпапок для страниц с разной логикой начался кошмар, поскольку никакого динамического преобразования путей к клиентским сценариям не происходило. Я проклинал Майкрософт, проклинал ASP.NET, проклинал всю команду разработчиков этой технологии. Прошерстив немного интернет я нашел выход. Для преобразования абсолютного урла в динамический правильный относительный путь можно воспользоваться методом ResolveClientUrl класса Controll. Собственно поскольку сама страница так же является контроллом пишем внутри аттрибута src:

<%= ResolveClientUrl("~/frontend/js/jquery-1.3.2.min.js") >

Вот что написано в официальной документации:

Метод ResolveClientUrl используется для возвращения строки URL-адреса, подходящего для использования клиентом для доступа к ресурсам веб-сервера, таким как файлы рисунков, ссылки на дополнительные страницы и т.д. URL-адрес, возвращенный этим методом, определяется относительно папки, содержащей файл источника в котором создан элемент управления. Элементы управления, которые наследуют это свойство, например и MasterPage, возвращают полный URL-адрес относительно элемента управления

Добавить комментарий