![](/img/trans.png)
[英]ASP.Net: Using System.Web.UI.Control.ResolveUrl() in a shared/static function
[英]ResolveUrl without an ASP.NET 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
关于SO的这个问题( ASP.Net:在共享/静态函数中使用System.Web.UI.Control.ResolveUrl() )看起来很有帮助......基本上,你可以使用System.Web下的VirtualPathUtility类。命名空间。 这个问题有一个额外的答案,它说要小心QueryString参数,但也提供了解决方案。
与此同时,Rick Strahl的代码非常整洁!
使用类似这样的东西 - Controls是应用程序中的文件夹名称,myController是控制器名称。 要创建和实例并加载控制器,您可以通过以下方式执行此操作:
Controls_myController ctrl = Page.LoadControl(Page.ResolveUrl("controls/myController.ascx"));
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.