发布于 2011-02-04 10:07:35
尝试从处理程序中获取页面并使用ResolveUrl
,或创建控制对象...
(HttpContext.Current.Handler as Page).ResolveUrl("~/virtualpath");
或者使用VirtualPathUtility.ToAppRelative(string)
或VirtualPathUtility.ToAbsolute(string)
例如:
System.Web.VirtualPathUtility.ToAbsolute("~/Styles/Contoso.xslt");
返回
/WebSite/Styles/Contoso.xslt
发布于 2011-02-04 08:49:23
这个问题在SO (ASP.Net: Using System.Web.UI.Control.ResolveUrl() in a shared/static function)上看起来有点helpful...Basically,你可以使用VirtualPathUtility类,它在System.Web命名空间下。这个问题还有一个额外的答案,那就是要小心QueryString参数,但也提供了一个解决方案。
同时,Rick Strahl的代码非常整洁!
发布于 2013-08-28 03:38:25
使用类似这样的东西- Controls是应用程序中的文件夹名称,myController是控制器名称。要创建和实例化并加载控制器,您可以通过以下方式完成:
Controls_myController ctrl = Page.LoadControl(Page.ResolveUrl("controls/myController.ascx"));
希望这能有所帮助。
https://stackoverflow.com/questions/4893380
复制相似问题