Вызов ResolveClientUrl в статическом веб-методе (ASPNet Web Forms) - PullRequest
5 голосов
/ 15 июля 2011

В настоящее время у меня возникают проблемы с поиском способа вызова ResolveClientUrl в контексте статического веб-метода на странице веб-форм ASP.Net.

Я использую вызовы jQuery Ajax для взаимодействия с WebForms, как описано здесь: http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/, поэтому WebMethod должен быть статичным. Проблема в том, что в WebMethod мне нужно сгенерировать URL-адрес и добавить к нему строку запроса, и я хотел бы воспроизвести его безопасно и передать его через ResolveClientUrl перед добавлением строки запроса.

Можно ли как-то обойти это, или .Net предоставляет альтернативный статический метод, который делает более или менее то же самое?

Ответы [ 2 ]

10 голосов
/ 13 марта 2013

из ... ASP.Net C # ResolveClientUrl внутри класса

Вместо вызова ResolveClientUrl для объекта страницы (или любых элементов управления) вы также можете использовать Web.VirtualPathUtility.ToAbsolute("~/home.aspx");, которыйвыдаст вам тот же результат, что и звонок ResolveUrl("~/home.aspx");

2 голосов
/ 15 июля 2011

Это возможно при вызове с веб-страницы с использованием:

public static void DoThis () {Page page = HttpContext.Current.Handler as Page;}

Однако, если вы используете веб-метод, он не будет страницей в качестве обработчика;это обработчик для веб-запроса.Я использовал этот подход из JavaScript, и он работал:

http://iridescence.no/post/Resolving-relative-URLe28099s-from-JavaScript.aspx

HTH.

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