【问题标题】:Calling ResolveClientUrl within a static web method (ASPNet Web Forms)在静态 Web 方法(ASPNet Web 窗体)中调用 ResolveClientUrl
【发布时间】:2011-10-06 06:35:34
【问题描述】:

我目前无法找到在 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 提供了另一种或多或少做同样事情的静态方法?

【问题讨论】:

    标签: asp.net .net webforms


    【解决方案1】:

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

    除了在 Page 对象(或任何控件)上调用 ResolveClientUrl 之外,您还可以使用 Web.VirtualPathUtility.ToAbsolute("~/home.aspx");,这将得到与调用 ResolveUrl("~/home.aspx"); 相同的结果

    【讨论】:

      【解决方案2】:

      如果从网页调用它是可能的:

      公共静态无效 DoThis() { Page page = HttpContext.Current.Handler as Page; }

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

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

      HTH。

      【讨论】:

      • 感觉就像是 hack。但是,它非常简单,并且可以完成工作。另外,我觉得这是我唯一的选择。干得好,谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      相关资源
      最近更新 更多