繁体   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