2016-04-17 5 views
1

Da die Frage sagt alles darüber, aber sie ein wenig mehr Informationen ich die .js alle Dateien wie unten in meiner Asp.NET MVC-Anwendung enthalten geben:Warum muss ich JS-Dateien einbinden, um mit jQuery in jeder einzelnen Ansicht arbeiten zu können?

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

Auch, dass ich .js Dateien in jeder enthalten haben einzelne Seite, um mit jQuery arbeiten zu können, sonst funktioniert es nicht. Ich habe versucht, diese Skriptdateien in BundleConfig aufzunehmen, überraschenderweise funktionierten die Skripte sogar auf der Layoutseite gar nicht. Was ist der Trick ?!

+1

Können Sie uns Ihren Code zeigen, wo Sie 'js.'files in Ihrer' BundleConfig' enthalten und wie haben Sie gebündelte Skripte im Layout aufgerufen? Vielen Dank. – arman1991

Antwort

0

Im Allgemeinen haben Sie ein App_Start/BundleConfig.cs in Ihrem Projekt bekommen

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")); 

    } 

In der Shared/_Layout.cshtml Ansicht add:

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

So Standard ASP.NET MVC-Projekte fügt _ViewStart.cshtml hinzu, das ein einzelnes Layout in jeder Ansicht definiert. Und prüfen Sie die Bundle-Registrierung in Global.asax.cs