2012-05-07 158 views
1

我在MVC3應用程序中使用Microsoft.ReportViewer.WebForms控件。 ReportViewer通過在同一個程序集中調用HttpHandler來獲取它的javascript。該處理程序返回存儲爲嵌入資源的JavaScript。忽略第三方嵌入式資源

我的問題是,它返回的JavaScript有一個錯誤,導致在某些情況下在Firefox中的運行時錯誤。

我想重寫正在返回的嵌入式資源,以使用我更正的JavaScript。

我該怎麼做呢?我已經看過resx文件,但我不知道文件應該如何命名,它會去哪裏,等等......

回答

0

如果你知道這個錯誤,你可以自己改變這個函數。

function iHaveBug() { alert('buggy'); } 

然後你進來,在它加載後寫:

iHaveBug = function() { alert('all better'); } 
+0

我的問題是,控制器呈現的UI,調用處理程序來獲取動態javascipt,然後調用所有在它的生命週期中返回的JavaScript函數。從我所知道的情況來看,沒有一個地方讓我介入並在它請求javascript和調用函數時進行更改,因爲它們都是一個操作的一部分。它不會加載文件,稍後會有一些用戶事件觸發該呼叫。 – jskentzos

0

你需要與該修正的JavaScript文件,這並不難,因爲它聽起來重建大會。這篇文章告訴你如何去做:http://fortheloveofcode.wordpress.com/2007/09/24/change-resources-inside-assembly/

+0

其實我之前曾嘗試過,使用同一篇文章。我遇到的問題是程序集簽名(這是從MSFT畢竟的),所以我無法重建它並重新簽名。當我刪除簽名(使用snremove工具),反彙編,改變我的JavaScript,然後重新組合,我開始得到有關「Dispose()是如何處於安全中立但包含在安全關鍵類型」或類似的不要完全記得)。在那一點上,我想我正在吠叫錯誤的樹並改變方向,試圖通過配置文件覆蓋資源值。 – jskentzos