我正在使用带有Razor视图引擎的MVC 3,我想将我的视图中的脚本注入一个$(document).ready(function(){});功能在母版页中。
我试过了:
<script type="text/javascript">
$(document).ready(function () {
//OnLoad Script load area
'@RenderSection("DocumentReady", false)'
});
</script>
在我的主人,然后:
@section DocumentReady{
alert('');
}
在我看来,但毫无疑问,这不起作用:(
有没有一种简单的方法可以将js代码添加到主函数中?我可能会遗漏一些非常简单的东西。我的观点是,我有很多使用$(document).ready(()函数的小视图控件,我不希望客户端页面上堆满这些及其附带的脚本标记。
感谢。
答案 0 :(得分:77)
您的布局中不需要围绕RenderSection调用的单引号:
<script type="text/javascript">
$(document).ready(function () {
@RenderSection("DocumentReady", false)
});
</script>
并在视图中:
@section DocumentReady {
alert('');
}
但如果你的布局中有一个脚本部分,它可能会更具可读性:
@RenderSection("Scripts", false)
并在视图中:
@section Scripts {
<script type="text/javascript">
$(function() {
alert('');
});
</script>
}
答案 1 :(得分:9)
例如,在_layout.cshtml中:
@RenderSection("JavaScript", required: false)
然后在你看来:
@section JavaScript
{
<script type="text/javascript" src="@Url.Content("/Scripts/SomeScript.js")"></script>
<script type="text/javascript" src="@Url.Content("/Scripts/AnotherScript.js")"></script>
<script type="text/javascript">console.log("in the js");</script>
}
希望有所帮助