MVC5为什么在标准_Layout.cshtml中@RenderBody下面的@ Scripts.Render

Mic*_*itt 12 jquery razor asp.net-mvc-5

当我生成一个MVC5应用程序时,_Layout.cshtml _Layout.cshtml在文件末尾有@Scripts.Render.如果我将.js添加到使用jquery的index.cshtml中,我会得到可怕的" @RenderBody()未定义"错误.

我知道解决这个问题的唯一方法是移动.js到该index.cshtml部分.

什么是正确的方法?

提前致谢!

Toa*_*yen 14

@Scripts.Render应该在页面的底部.否则,您将有可能访问脚本运行时尚未加载的页面元素.

编辑:

如果要包含自定义脚本文件,有两种方法:

1.在BundleConfig.cs中,为脚本添加一个新包

 *bundles.Add(new ScriptBundle("~/bundles/UserScripts").Include("~/Scripts/MyScripts.js"));*
Run Code Online (Sandbox Code Playgroud)

接下来,在_Layout.cshtml中,在jQuery bundle之后呈现脚本包:

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")

    @* Render the custom bundles *@
    @Scripts.Render("~/bundles/UserScripts")
Run Code Online (Sandbox Code Playgroud)

2.或者在Index.cshtml文件中添加一个新的脚本部分:

@section scripts {

    <script src="~/Scripts/MyScripts.js"></script>**

}
Run Code Online (Sandbox Code Playgroud)