下面是几种可能的答案我上面张贴的答案,同时考虑到有关动态JavaScript您的评论定制的。
首先,我不知道的方式做到这一点特别是使用两种MVC或WCF ..只有我知道该怎么做,这是一个低级别的HttpModule方式
看看的下面的代码:
public class JavascriptReplacementModule : IHttpModule
{
public class ResponseFilter : MemoryStream
{
private Stream outputStream = null;
public ResponseFilter(Stream output)
{
outputStream = output;
}
public override void Flush()
{
base.Flush();
this.Seek(0, SeekOrigin.Begin);
var sr = new StreamReader(this);
string contentInBuffer = sr.ReadToEnd();
//Do replacements here
outputStream.Write(UTF8Encoding.UTF8.GetBytes(contentInBuffer), 0, UTF8Encoding.UTF8.GetByteCount(contentInBuffer));
outputStream.Flush();
}
protected override void Dispose(bool disposing)
{
outputStream.Dispose();
base.Dispose(disposing);
}
}
public void Dispose() { }
public void Init(HttpApplication context)
{
context.PostRequestHandlerExecute += new EventHandler(context_PostRequestHandlerExecute);
}
void context_PostRequestHandlerExecute(object sender, EventArgs e)
{
var context = (HttpApplication)sender;
if (context.Request.Url.AbsolutePath.StartsWith("/Content") && context.Request.Url.AbsolutePath.EndsWith(".js"))
{
HttpContext.Current.Response.Filter = new ResponseFilter(HttpContext.Current.Response.Filter);
}
}
}
而且这样注册模块(确保你把type属性的全部类型):
<system.webServer>
<modules>
<add name="JavascriptReplacementModule" type="JavascriptReplacementModule"/>
</modules>
</system.webServer>
这让之前修改的输出流它得到客户端
谢谢。如果我还想要向供应商(Telerik)动态JavaScript文件发送请求,该怎么办?这不是在较低的水平上运作吗? – LamonteCristo 2013-03-28 03:13:43
你可以改变从文件中读取所有文本的行,通过http请求文件内容..这是一个非常简单的解决方案,但更多的开销(每个请求,实际上会被处理两次) – 2013-03-28 03:40:37