1

我正在尝试使用过滤器将某些文本插入到 ScriptResource.axd 中,当我将 Js 放入 CompositeScript 元素时,该文本由 ScriptManager 生成。

我发现这项任务几乎是不可能的。

用 Asp.Net 术语翻译的这个问题意味着我正在尝试过滤内置处理程序的输出(System.Web.Handlers.ScriptResourceHandler:没有源代码)..

当处理程序与请求相关联时,我可以应用过滤的 HttpModules 甚至都没有加载。因此,我尝试使用 HttpModule(即在 PostRequestHandlerExecute 中)从较早的事件中调用 System.Web.Handlers.ScriptResourceHandler 的“ProcessRequest”,然后在 PostReleaseRequestState 上应用过滤器......这给了我一个编码不可能的字符串转换(也许 gzip 已经被使用了?)。

我想要做的甚至可能吗?你能给我一些关于你将如何进行的建议吗?

如果您需要更多信息或源代码,请告诉我。

4

2 回答 2

0

如果这不言而喻,请原谅我,如果您只是想将附加输出插入到 .axd(而不是更改输出),为什么不在引用 .axd 的页面中包含附加输出或另一个外部资源?如果您只需要添加额外的输出,这将更加有效。

于 2011-10-25T12:35:57.020 回答
0

最后,我关于压缩的假设是正确的。我设法通过禁用它来获取 ScriptResource.axd 文件内容。事实上,在 web.config 中有一个关于此的配置,您可以在其中禁用压缩。它在本节中:

<system.web.extensions>
   <scripting>
      <scriptResourceHandler enableCompression="false" enableCaching="true" />
   <scripting>
<system.web.extensions>

现在我可以在 PostReleaseRequestState 的 HttpModule 中获取内容,如果需要,我现在可以在替换字符串后进行一些 GZip 压缩。我会做一些测试,看看我是否还需要禁用缓存......

于 2011-10-26T15:18:56.540 回答