2013-06-06 5 views
6

Wenn ich meinen Code ausführen bekomme ich diesen Fehler:Unable Wert der Immobilie erhalten ‚unauffällig‘: Objekt null oder nicht definiert ist

Unable to get value of the property 'unobtrusive': object is null or undefined 

Es wäre normal, aber ich hinzufüge, die alle Sachen, die ich jquery Bedarf:

jquery.validate-vsdoc.js 
jquery.validate.js 
jquery.validate.min.js 
jquery.validate.unobtrusive.js 
jquery.validate.unobtrusive.min.js 
jquery.unobtrusive-ajax.js 
jquery.unobtrusive-ajax.min.js 

ich lade diese auf meine Hauptform:

@Scripts.Render("~/bundles/jquery") 
@Scripts.Render("~/bundles/jqueryui") 
@Scripts.Render("~/bundles/jqueryval") 

Und mein Bündel Config hat:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
      "~/Scripts/jquery-{version}.js")); 

bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
      "~/Scripts/jquery-ui-{version}.js")); 

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
      "~/Scripts/jquery.unobtrusive*", 
      "~/Scripts/jquery.validate*")); 

Ich habe in meinem Script Ordner alle Dateien verwandt.

Warum erhalte ich diesen Fehler? Kommentar, wenn Sie brauchen jede Datei, um zu sehen, und ich werde es gerne veröffentlichen

EDIT:

Die Skripte werden geladen (I geprüft) Diese Zeile gibt den Fehler:

jQuery.validator.unobtrusive.prototype.parse.call(this, selector); 

ERROR:

+0

Wenn Sie sicher sind, dass alle Dateien vorhanden sind (zB "jquery.validate.unobtrusive.js"?), Sollten Sie alle Skripte mit einem "grep" -Befehl oder "Notepad ++" nach dem "unaufdringlichen" Element suchen . – Pragmateek

+0

Ich habe vor 2 Minuten ein Update-Paket von der Paket-Manager-Konsole gemacht, also sollten sie korrekt sein. – AAlferez

+0

Ich überprüft und das Element ist da – AAlferez

Antwort

8

das Problem gefunden.

hatte ich eine andere Teilansicht, die ein Skript wurde das Hinzufügen „~/Scripts/jquery ...“

So hatte ich das Bündel in der Hauptansicht und dies in einem Teil eines Menüs, das immer Rendering wurde . Scheint so, als ob nur der letzte in Betracht gezogen wurde und das Unobtrusive dort nicht hinzugefügt wurde. Wenn Sie es aus der Teilansicht entfernen und nur das Teil in der Hauptansicht belassen, wird es aufgelöst.

Danke für die Vermutungen.

+1

Vielen Dank. Ich habe mehr als 5 Stunden mit diesem Thema gekämpft. – nishantvodoo

-1

Was Code Junkie bedeutet zu sagen ist, haben Sie die unauffällige javascript aktiviert Schlüssel in web.config hinzugefügt.

Sie müssen dies in appSettings hinzuzufügen:

<appSettings> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
</appSettings> 
+0

Ich habe es bereits hinzugefügt, das ist nicht das Problem – AAlferez

2

Ich habe diese Fehlermeldung aus einem anderen Grund, also ich würde teilen.

Wir verwenden Microsofts CDN, um die Datei jquery.validate.min.js zu bedienen, und unser Client verwendete einen Filter, der asp.netcdn.com auf einer Blacklist hatte, die das Laden der Datei verhinderte.

Wenn Sie also den Client dazu bringen, das CDN auf die weiße Liste zu setzen oder das CDN zu ändern, wird das Problem gelöst. Wirklich, wir sollten ein Fallback haben, so dass es eine lokale Version gab, wenn das CDN nicht verfügbar war, aber wir haben das noch nicht implementiert.

3

Ich habe das für eine andere, viel mehr mit Vernunft. Ich hatte jquery.validate.unobtrusive.js vor jquery.validate.min.js in meiner Seite.

Einfach verschieben validate oben validate validate.unobtrusive das Problem behoben.

Verwandte Themen