Как вы ссылаетесь на эти внешние файлы js? Вы должны использовать URL-помощники, чтобы обеспечить правильные пути к ним:
<script src="@Url.Content("~/Scripts/myscript.js")" type="text/javascript"></script>
Теперь внутри этого внешнего myscript.js
, в зависимости от того, ссылались ли вы на него в разделе <head>
или в конце перед закрытием </body>
, следует использовать $(document).ready
или нет.
Что вы можете сделать, это определить секцию scripts
в _Layout.cshtml
:
...
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
@RenderSection("scripts", false)
</body>
, который может использоваться каждым представлением для включения его определенных сценариев:
@section scripts {
<script src="@Url.Content("~/Scripts/myscript.js")" type="text/javascript"></script>
}
и, наконец, внутри myscript.js
вы можете напрямую манипулировать DOM без включения document.ready
:
$('form').submit(function() {
alert('submitting a form');
});
Вы можете включить столько внешних сценариев, сколько захотите (хотя вам следует сократить их количество до строгого минимума, чтобы избежать дополнительных HTTP-соединений согласно рекомендациям YSlow )