我目前无法在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是否提供了一个或多或少做同样事情的替代静态方法?
答案 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。