I'm using MVC 3 with the Razor view engine and I would like to inject scripts from multiple views into one centrally defined $(document).ready(); function in the master page.
I have tried the following:
<script type="text/javascript">     $(document).ready(function () {       //OnLoad Script load area       '@RenderSection("DocumentReady", false)'     }); </script>   In my master view, and then:
@section DocumentReady{     alert('Document is ready!'); }   In my view, but unsuprisingly, we get compilation errors due to the javascript not being within a <script> tag.
If there are a lot of small view controls that need to run some initialisation script in the $(document).ready() function, it would be nice to keep them all together in a single place.
Is there a way to inject javascript to a master view without the surrounding <script> tags and without affecting compilation?
You don't need the single quotes around the RenderSection call in your layout:
<script type="text/javascript">     $(document).ready(function () {         @RenderSection("DocumentReady", false)     }); </script>   and inside the view:
@section DocumentReady {     alert(''); }   But it will probably be more readable if you have a scripts section in your layout:
@RenderSection("Scripts", false)   and inside the view:
@section Scripts {     <script type="text/javascript">            $(function() {             alert('');         });     </script> } 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With