public void Render(TextWriter writer) { if (_references != null) { foreach (ScriptReference scriptReference in _references) { if ((_scriptInliner != null) && _scriptInliner.CanInlineScript(scriptReference)) { string scriptContent = _scriptInliner.GetScript(scriptReference); if (scriptContent == null) { RenderScriptTag(writer, /* path */ null, scriptReference.Name, scriptReference.Dependencies, scriptReference.Mode, "load", null); } else { string version = scriptReference.Version.ToString(CultureInfo.InvariantCulture); RenderScriptTag(writer, /* path */ null, scriptReference.Name, scriptReference.Dependencies, scriptReference.Mode, version, scriptContent); } } else { RenderScriptTag(writer, scriptReference.Path, scriptReference.Name, scriptReference.Dependencies, scriptReference.Mode, null, null); } } } if (_scriptBlocks != null) { foreach (ScriptBlock scriptBlock in _scriptBlocks) { RenderScriptTag(writer, /* path */ null, /* name */ null, scriptBlock.Dependencies, ScriptMode.Startup, /* storage */ null, scriptBlock.Code); } } // Write out the script loader reference. writer.Write("<script type=\"text/javascript\" src=\""); writer.Write(_loaderScript); writer.WriteLine("\"></script>"); if (_scriptlets != null) { writer.WriteLine("<script type=\"text/javascript\">"); writer.WriteLine("ss.ready(function() {"); foreach (Scriptlet scriptlet in _scriptlets) { writer.Write(scriptlet.ScriptletType); writer.Write("Scriptlet("); if (scriptlet.Parameters != null) { JsonWriter jsonWriter = new JsonWriter(writer, /* minimizeWhitespace */ true); jsonWriter.WriteValue(scriptlet.Parameters); } writer.WriteLine(");"); } writer.WriteLine("});"); writer.WriteLine("</script>"); } }