Ich versuche, ScriptManager
zu erweitern, um den Umgang mit Ressourcen zu vereinfachen, die mehrere Ressourcendateien haben (z. B. mehr als eine Skriptdatei sowie CSS). Das Ziel ist, dass ich in der Lage sein werde, eine einzige ScriptReference
zu Scripts
hinzuzufügen und es laden mehr als eine Ressource, die auf diesen Referenznamen bezogen ist.ScriptManager, Page, statische Methoden ... wie bekomme ich den aktuellen ScriptManager ohne Page?
Worauf ich stecken bleibe ist, wie kann Ihr grundlegendes ScriptManager
wissen, was mit Sachen zu tun ist, wenn statische Methoden verwendet werden, die keinen Page
Parameter enthalten? Zum Beispiel:
ScriptManager.ScriptResourceMapping.AddDefinition("someName", new
ScriptResourceDefinition { Path="/script/somescript.js"});
Diese Definition ergänzt (glaube ich), was auch immer der aktive Skript-Manager für die Seite ist, die ausgeführt wird, wenn Sie es nennen. Aber im Gegensatz zu den Methoden der alten Schule, wie RegisterClientScriptBlock
, gibt es keinen Parameter, der die Seite identifiziert. Aber dieses Zeug muss im ScriptManager
Objekt gespeichert werden, nicht? Also, wie weiß es das?
Ich kann immer einen Verweis auf den aktiven mit diesem erhalten:
ScriptManager.GetCurrent(page);
sondern im Idealfall würde ich neue Methoden erstellen, die genau wie Microsoft arbeiten. Ich kann nicht herausfinden, wie ich so etwas wie
ScriptManager.ScriptResourceMapping.AddDefinition(string name,
ScriptResourceDefinition definition,
ResourceType type)
implementieren könnte, die die Objektinstanz herausfinden konnte, das Zeug in hinzuzufügen, ohne einen Seitenparameter hinzufügen zu müssen. Irgendwie machen sie es ... wie kann ich?
Warum Sie versuchen, vom Skript-Manager zu gehen und nicht einen einfachen Handler zu erstellen und die Dateien selbst zu lesen, machen Sie den gleichen Job mit Ihrem Code und Sie können die vollständige Kontrolle über sie haben. (Minimiert sie, lösche sie usw.) – Aristos
Ich habe schon so etwas, und so bin ich hier gelandet. Aber ich möchte es wirklich mit ScriptManager integrieren, weil es einige sehr nützliche Funktionen hat (wie zum Beispiel, welche Version für Debug/Release, CDN etc. zu verwenden ist), also sehe ich keinen Grund, das Rad für all diese Funktionalität neu zu erfinden. –