如何在ASP.NET HttpHandler中获取嵌入式资源的URL
HttpHandler 场景下获取嵌入式资源URL的解决方案
方案1:创建空Page实例调用原有方法(推荐)
不需要将Page对象接入请求生命周期,仅创建空实例即可直接使用ClientScript属性调用GetWebResourceUrl,和原有Page场景的用法完全兼容,无需额外适配。
示例代码:
// 直接实例化空Page对象 var emptyPage = new Page(); // 第一个参数填嵌入式资源所在程序集内的任意类型,第二个参数为资源的完整名称(含命名空间前缀) string webResourceUrl = emptyPage.ClientScript.GetWebResourceUrl(typeof(MyResourceContainingClass), "MyNamespace.MyResourceName.js");
方案2:手动拼接WebResource请求路径(仅特殊场景使用)
如果不希望创建Page实例,可手动拼装WebResource.axd的请求路径,需要自行获取程序集的公钥token、计算资源哈希,实现复杂度较高,非必要不推荐使用。
注意事项
- 嵌入式资源的「生成操作」属性必须设置为
嵌入式资源 - 调用方法时传入的资源名称必须包含完整命名空间前缀,可通过反编译程序集确认资源的实际完整名称
内容的提问来源于stack exchange,提问作者Igor
相关产品推荐
相关产品推荐

