首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不带ASP.NET页的ResolveUrl

不带ASP.NET页的ResolveUrl
EN

Stack Overflow用户
提问于 2011-02-04 08:31:45
回答 3查看 73.5K关注 0票数 66

我正在寻找一种方法来解析相对url,就像您使用页面或控件实例的方式一样(MSDN Docs,例如:

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

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

我是否需要使用自定义函数,比如看到的here

或者有没有办法获得页面使用的底层函数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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
票数 116
EN

Stack Overflow用户

发布于 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的代码非常整洁!

票数 17
EN

Stack Overflow用户

发布于 2013-08-28 03:38:25

使用类似这样的东西- Controls是应用程序中的文件夹名称,myController是控制器名称。要创建和实例化并加载控制器,您可以通过以下方式完成:

Controls_myController ctrl = Page.LoadControl(Page.ResolveUrl("controls/myController.ascx"));

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4893380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档