下面是幾種可能的答案我上面張貼的答案,同時考慮到有關動態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