我对@ Scripts.Render和@ Styles.Render的位置感到很困惑。理想情况下,我会将它们全部放在头部,但出乎意料的是,例如,@ Scripts.Render("〜/ bundles / bootstrap")根本不会工作,除非我把它放在身体部分内,之后@RenderBody()。
对于放置@ Mvc.RazorTools.BundleManager.Styles.Render()和@RenderSection("脚本",必需:false)的位置存在同样的困惑。
对此非常感激。
P.S。这个问题有另一个类似的答案,但唯一的相似之处在于标题,因为问题在于丢失文件,而不是放置。此问题也没有涉及脚本和样式。
为完成而添加包:
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"));
答案 0 :(得分:1)
我建议您将 @ Styles.Render 放在页面的head部分。这样做会让浏览器更快地呈现页面,因为它在呈现页面之前等待加载所有CSS文件。
我还建议您将 @ Scripts.Render 放在页面正文的结束标记之前。这样做将允许浏览器以完美的方式呈现UI。请注意,无论何时执行脚本(Web工作者和Ajax调用都被免除),UI线程都会停止(这会导致在某些情况下长时间运行脚本)。
增加:
<head>
Render styles here
</head>
<body>
Render jQuery Scripts
Render Bootstrap Scripts
</body>
答案 1 :(得分:0)
首先,您可以将@ Styles.Render和@ Scripts.Render放在脚本和样式标记的任何位置,因此放入标题是完全没问题的。可能还有其他错误,如果您提供更多信息,它可能会有所帮助。 你通常把@RenderSection(&#34; scripts&#34;,required:false)放在你的母版页中(比如默认的_layout文件)。然后你可以把
@section script{
}
在您的页面上,您放在此标记内的内容将替换为母版页上的@RenderSection(&#34; scripts&#34;,required:false)。
注意:您不能将@section放在部分页面上。