Καλησπέρα σε όλους ...
Γράφοντας ένα νέο site, και "
for the sake of compliance & good behavior", θέλαμε να μαζέψουμε όλα τα scripts (
javascript, client-side ) σε ένα μέρος, στον πάτο της σελίδας, και να τα κάνουμε αυτόματα minify ... (
strip comments, spaces, new lines κτλ κτλ ).
Για αυτό το λόγο, ορίσαμε 2 ContentPlaceHolders στη master page μας, και στις κανονικές μας σελίδες, γράφουμε όλο το script code μέσα σε αυτά, ώστε να βρεθούν στο σωστό σημείο όταν γίνει το τελικό render.
Πάνω απο αυτό, ήθελα να μπώ να κάνω το "minify". Έτσι, στο pre_render της master page, έκανα το εξής:
IEnumerable<Control> inlineScriptControls = this.InlineScriptsContainer.Controls.Cast<Control>();
IEnumerable<Control> onloadScriptControls = this.OnLoadScriptsContainer.Controls.Cast<Control>();
IEnumerable<Control> allControls = inlineScriptControls.Concat(onloadScriptControls);
... και μετά, ήλπιζα ότι θα κάνω ένα foreach στα controls αυτά, και θα χρησιμοποιούσα τη minify() μέθοδό μου στα περιεχόμενά τους.
Έλα όμως που ... το allControls είναι ... άδειο !
Στη σελίδα μου (
όχι τη master ) μέσα στα placeholders είμαι κάπως έτσι:
<asp:Content ID="inlineScript" ContentPlaceHolderID="InlineScriptsContainer" runat="server">
var routingCheck = "";
var themap;
var theRouter;
var dimensions = new Object;
var mapState = new Object;
this.mapState.MapExpanded = true;
this.mapState.SidebarEnabled = false;
var userPref;
var center = "";
var start = null, middle = null, end = null;
var siteRoot ="<%= WebSiteUtils.WebSiteAbsoluteRoot %>";
var startTbx = '#StartTbx';
var endTbx = '#EndTbx';
var _uiStateManager;
</asp:Content>
... αντίστοιχα, στο master page μου, είμαι έτσι:
<%= "<script type='text/javascript'>" %>
<asp:ContentPlaceHolder ID="InlineScriptsContainer" runat="server">
</asp:ContentPlaceHolder>
$(document).ready(function() {
<asp:ContentPlaceHolder ID="OnLoadScriptsContainer" runat="server">
</asp:ContentPlaceHolder>
});
<%= "</script>" %>
</form>
</body>
... και παρα το ότι όλα φαινονται "σωστά", και η rendered σελίδα έχει τα scripts στο σωστό σημείο, στο PreRender της master page, ο κώδικας απο πιο πάνω μου δίνει ... 0 controls !
Ούτε ένα literal, τίποτα !
Καμμιά ιδέα κανείς;;;
O:]
Angel
O:]