Jquery 放置@Scripts.Render和@style.Render的位置

Jquery 放置@Scripts.Render和@style.Render的位置,jquery,css,asp.net-mvc,twitter-bootstrap,Jquery,Css,Asp.net Mvc,Twitter Bootstrap,我对放置@Scripts.Render和@style.Render的位置感到非常困惑。理想情况下,我会将它们全部放在head部分中,但出乎意料的是,例如,@Scripts.Render(“~/bundles/bootstrap”)根本无法工作,除非我将其放在body部分中的@RenderBody()之后 在放置@Mvc.RazorTools.BundleManager.Styles.Render()和@RenderSection(“脚本”,必需:false)的位置上也存在同样的混淆 最后一句话将

我对放置@Scripts.Render和@style.Render的位置感到非常困惑。理想情况下,我会将它们全部放在head部分中,但出乎意料的是,例如,@Scripts.Render(“~/bundles/bootstrap”)根本无法工作,除非我将其放在body部分中的@RenderBody()之后

在放置@Mvc.RazorTools.BundleManager.Styles.Render()和@RenderSection(“脚本”,必需:false)的位置上也存在同样的混淆

最后一句话将非常感谢

p、 这个问题还有另一个类似的答案,但唯一的相似之处在于标题,因为问题在于缺少文件,而不是位置。此外,这个问题并没有同时涉及脚本和样式

为完成而添加捆绑包:

bundles.Add(new ScriptBundle("~/bundles/bundlejquery").Include(
                    "~/Scripts/jquery-1.12.4.js",
                   "~/Scripts/jquery-ui-1.12.1.js",
                   "~/Scripts/jquery.validate.min.js",
                   "~/Scripts/jquery.validate.unobtrusive.min.js"));

bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                  "~/Scripts/bootstrap.js",
                  "~/Scripts/respond.js"));

我建议您将@style.Render放在页面的标题部分。这样做可以让浏览器更快地呈现页面,因为它会在呈现页面之前等待加载所有CSS文件

我还建议您将@Scripts.Render放在页面正文的结束标记之前。这样做将允许浏览器以完美的方式呈现UI。请注意,每当脚本执行时(Web workers和Ajax调用被豁免),UI线程就会停止(这会导致在某些场景中长时间运行脚本)

补充:

<head>
 Render styles here
</head>
<body>

    Render jQuery Scripts
    Render Bootstrap Scripts
</body>

在此处渲染样式
呈现jQuery脚本
呈现引导脚本

首先,您可以将@Styles.Render和@Scripts.Render放在放置脚本和样式标记的任何位置,因此可以将它们放在标题中。如果您提供更多信息,可能还有其他问题,可能会有所帮助。 通常将@RenderSection(“scripts”,required:false)放在母版页中(如默认的布局文件)。然后你可以把

@section script{
}
在您的页面上,您放置在该标记中的内容将被母版页上的@RenderSection(“scripts”,required:false)替换


注意:您不能将@section放在部分页面上。

这可能是重复的,这解释了为什么@Scripts.Render(“~/bundles/bootstrap”)在我的头部分中不能正常工作。谢谢。在深入检查之后,发现@Scripts.Render(“~/bundles/bootstrap”)必须在我的主体部分才能工作(根据您的回答),但是除非我将它放在主体部分,否则ScriptBundle(“~/bundles/bundlejquery”)将无法工作。所以我一直对一条关于脚本放置的清晰规则感到困惑。@Luke,这是因为引导依赖于jQuery。这意味着您必须将jQuery脚本放在引导脚本之前。它们可以放在页面底部。