我試圖擴展ScriptManager
以簡化處理具有多個資源文件(例如多個腳本文件以及css)的資源。目標是我可以添加一個ScriptReference
到Scripts
,並讓它加載多個與該參考名稱相關的資源。ScriptManager,頁面,靜態方法...我如何獲得當前沒有頁面的ScriptManager?
我遇到的問題是,在使用不包含Page
參數的靜態方法時,您的基本ScriptManager
如何知道如何處理這些內容?例如:
ScriptManager.ScriptResourceMapping.AddDefinition("someName", new
ScriptResourceDefinition { Path="/script/somescript.js"});
無論活動腳本管理器是在您調用它時運行的頁面,它都會添加一個定義(我猜)。但與老派方法不同,例如RegisterClientScriptBlock
,沒有傳遞參數來標識頁面。但是這個東西必須存儲在ScriptManager
對象中,不是嗎?那麼它是如何知道的?
我總是可以得到有效一個與此引用:
ScriptManager.GetCurrent(page);
,但理想情況下,我會創建工作酷似微軟的新方法。我不知道如何實現像
ScriptManager.ScriptResourceMapping.AddDefinition(string name,
ScriptResourceDefinition definition,
ResourceType type)
可以找出對象實例添加到東西,而不必添加一個頁面參數。不知何故,他們正在做...我怎麼能?
爲什麼你試圖從腳本管理器去,而不是創建一個簡單的處理程序,並通過你自己讀取文件,做你的代碼相同的工作,你可以完全控制它們。 (縮小它們,清除它們等) – Aristos 2011-01-14 21:46:47
我已經有了類似的東西,這就是我如何在這裏結束的。但我真的想將它與ScriptManager集成在一起,因爲它具有一些非常有用的功能(比如確定哪個版本用於調試/發佈,CDN等),所以我沒有理由重新發明所有功能。 – 2011-01-14 21:52:18