在静态Web方法中调用ResolveClientUrl(ASPNet Web窗体)

时间:2011-07-15 15:32:01

标签: asp.net .net webforms

我目前无法在ASP.Net Web窗体页面内的静态Web方法的上下文中找到调用ResolveClientUrl的方法。

我正在使用jQuery Ajax调用与WebForms进行交互,如下所述:http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/这就是为什么WebMethod需要是静态的。问题是在WebMethod中我需要生成一个URL并向其附加一个查询字符串,我想安全地播放它并在附加查询字符串之前通过ResolveClientUrl传递它。

我有什么方法可以解决这个问题,或者.Net是否提供了一个或多或少做同样事情的替代静态方法?

2 个答案:

答案 0 :(得分:10)

...从 ASP.Net C# ResolveClientUrl inside Class

您可以使用ResolveClientUrl而不是在Page对象(或任何控件)上调用Web.VirtualPathUtility.ToAbsolute("~/home.aspx");,这样可以获得与调用ResolveUrl("~/home.aspx");相同的结果

答案 1 :(得分:2)

如果使用以下网址从网页调用

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

但是,如果您使用的是Web方法,则不会将该页面作为处理程序;它是Web请求的处理程序。我在JavaScript中使用了这种方法,它确实有效:

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

HTH。