我正在寻找一种解决相对URL的方法,就像使用页面或控件实例(MSDN Docs)那样:

Page.ResolveUrl("~/common/Error.aspx");

...但是当我只有一个HttpContext可用时,例如当我在HttpHandler中时。

我是否需要使用自定义函数,例如here

或者有没有一种方法可以获取Page所使用的基础功能。

最佳答案

尝试从处理程序中获取页面并使用 ResolveUrl ,或创建一个Control对象...

(HttpContext.Current.Handler as Page).ResolveUrl("~/virtualpath");

或使用 VirtualPathUtility.ToAppRelative(string) VirtualPathUtility.ToAbsolute(string)

例如:
System.Web.VirtualPathUtility.ToAbsolute("~/Styles/Contoso.xslt");

退货
/WebSite/Styles/Contoso.xslt

关于c# - 没有ASP.NET页的ResolveUrl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4893380/

10-09 18:20