簡體   English   中英

為什么我必須包含JS文件才能在每個視圖中使用jquery?

[英]Why do i have to include JS files in order to work with jquery in every single view?

正如問題所說的那樣,但是為了給你提供更多信息,我在我的Asp.NET Mvc應用程序中包含了所有.js文件,如下所示:

<script src="~/Scripts/jquery-1.10.2.js"></script>

即使我必須在每個頁面中包含.js文件,以便能夠使用jQuery,否則它不起作用。 我試圖將這些腳本文件包含在BundleConfig令人驚訝的是腳本甚至在布局頁面上都沒有工作。 有什么訣竅?!

通常,您的項目中有一個App_Start / BundleConfig.cs

public class BundleConfig
{
    public static readonly string SiteJquery1Bundle = "~/bundles/jquery1";
    public static readonly string SiteJquery2Bundle = "~/bundles/jquery2";

    public static void RegisterBundles(BundleCollection bundles)
    {
        // We will choose bundle to render depending on IE version in view
        bundles.Add(new Bundle(SiteJquery1Bundle)
               .Include("~/Scripts/jquery-1.10.2.js"));
        bundles.Add(new Bundle(SiteJquery2Bundle)
               .Include("~/Scripts/jquery-2.1.3.min.js"));

    }

在您的Shared / _Layout.cshtml視圖中添加:

<html>
<head>
<title>...</title>
<!--[if lt IE 9]>
@Scripts.Render(BundleConfig.SiteJquery1Bundle)
<![endif]-->
<!--[if gte IE 9]><!-->
@Scripts.Render(BundleConfig.SiteJquery2Bundle)
<!--<![endif]-->
...
</head>

因此,默認的ASP.NET MVC項目添加了_ViewStart.cshtml,它定義了每個視圖中的單個布局。 並檢查Global.asax.cs中的包注冊

protected void Application_Start()
{
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
    // ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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