[英]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.