在ASPNET MVC 4应用程序中命令Jquery脚本

我正在使用jqgrid开发ASPNET MVC 4项目。

在那里,ASPNET MVC 4默认放置

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

在_Layout.cshtml文件的末尾。

现在,我有一个使用jqgrid的Index.cshtml

  jQuery("#ajaxGrid").jqGrid({ 

所以我必须包括jqgrid脚本

 @section jqgridScripts {   } 

但是在使用.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 {  } 

但最好的做法是在代码中使用单独的javascript文件,如下所示:

__Layout.cshtml:

 @Scripts.Render("~/bundles/jquery") @RenderSection("pageScripts", required: false); 

Index.cshtml:

 @section pageScripts {    } 

myscript.js:

 $(function() { jQuery("#ajaxGrid").jqGrid({ ... }); }); 

我也遇到过这个问题。 不捆绑jQuery本身似乎有点违反直觉,但这是必须要做的。 在标题中抛出一个jQuery脚本引用。 如果将jQuery脚本src属性设置为缩小的google托管实例的属性,则无论如何脚本很可能已缓存在客户端中。

这是一个很好的参考……