簡體   English   中英

在ASPNET MVC 4應用程序中命令Jquery腳本

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM