[英]Jquery scripts order in ASPNET MVC 4 application
我正在使用jqgrid开发ASPNET MVC 4项目。
在那里,ASPNET MVC 4默认放置
@Scripts.Render("~/bundles/jquery")
在_Layout.cshtml文件的末尾。
现在,我有一个使用jqgrid的Index.cshtml
<script type="text/javascript">
jQuery("#ajaxGrid").jqGrid({
所以我必须包括jqgrid脚本
@section jqgridScripts
{
<script src="@Url.Content("~/Scripts/jqgrid/i18n/grid.locale-en.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jqgrid/js/jquery.jqGrid.min.js")" type="text/javascript"></script>
}
但在使用.jqgrid之前,我需要加载jqgrid脚本,而这需要加载jquery脚本,因此,jquery脚本需要位于_Layout.cshtml文件的顶部而不是末尾。
根据最佳实践,需要在文件末尾加载jquery脚本,但是如果我这样做,在Index.cshtml文件中它不知道jQuery是什么。
我不能把jqquery脚本和jqgrid脚本放在_Layout.cshtml文件的底部,因为上面是使用jqgrid脚本的Index.cshtml文件内容。
是否有一些我缺少的东西,以便能够在结束时放置jQuery并仍然能够在视图中使用jquery的东西?
谢谢! 吉列尔莫。
__Layout.cshtml:
@Scripts.Render("~/bundles/jquery")
@RenderSection("jqgridScripts", required: false);
@* for script in current page *@
@RenderSection("pageScripts", required: false);
Index.cshtml:
@section pageScripts
{
<script type="text/javascript">
jQuery("#ajaxGrid").jqGrid({
...
</script>
}
但最好的做法是在代码中使用单独的javascript文件,如下所示:
__Layout.cshtml:
@Scripts.Render("~/bundles/jquery")
@RenderSection("pageScripts", required: false);
Index.cshtml:
@section pageScripts
{
<script src="@Url.Content("~/Scripts/jqgrid/i18n/grid.locale-en.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jqgrid/js/jquery.jqGrid.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/Site/myscript.js")" type="text/javascript"></script>
}
myscript.js:
$(function() {
jQuery("#ajaxGrid").jqGrid({ ... });
});
我也遇到过这个问题。 不捆绑jQuery本身似乎有点违反直觉,但这是必须要做的。 在标题中抛出一个jQuery脚本参考。 如果您将jQuery脚本src属性设置为缩小的google托管实例的属性,则很可能无论如何脚本已经缓存在您的客户端中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.