我正在寻找一种解决相对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/