在哪里放置@ Scripts.Render和@ Styles.Render

时间:2017-06-03 09:18:21

标签: jquery css asp.net-mvc twitter-bootstrap

我对@ 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"));

2 个答案:

答案 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放在部分页面上。