2013-10-16 10 views
6

Ich habe wahrscheinlich gerade die letzten zwei Stunden damit verbracht, das herauszufinden.MVC 4 Razor und Jquery UI Datepicker() "Objekt unterstützt keine Eigenschaft oder Methode"

Der bestimmte Fehler, die mit meiner MVC-Anwendung ausgelöst wird, ist dies: „0x800a01b6 - JavaScript-Laufzeitfehler: Objekt nicht Eigenschaft oder Methode‚Datepicker‘unterstützen“

Hier ist mein Code:

_Layout.cshtml:

<head> 

... 
<script type="text/javascript" src="../../Scripts/jquery-2.0.3.js"></script> 
<script type="text/javascript" src="../../Scripts/jquery-ui-1.10.3.js"></script> 
</head> 

die Ansicht .cshtml

@{ 
    ... 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

... 
<div> 
    Change Time Span: 
    <br /> 
    From: 
    <input type="text" id="test" /> 
</div> 

<div class="loading" id="container">@Model.LoadingMessage</div> 

<script type="text/javascript"> 
    $(document).ready(function() { 

     $('#test').datepicker(); 
    }); 

</script> 

Ich habe mehrere mögliche "doppelte" Fragen ohne Erfolg betrachtet. Hier sind einige der Fragen, die ich geschaut haben an:

MVC3 razor view error Microsoft JScript runtime error: Object doesn't support property or method 'datepicker'` jQuery giving error "Object doesn't support this property or method" on method datepicker Using datepicker in MVC 4.0 to persist a date value in db, throwing "object doesn't support this property or method"

  1. Ich glaube, ich bin alle Referenzierung, die ich von jquery muss mein Ziel zu erreichen.
  2. Das Element ist von Jquery lesbar, es kann seinen Wert sehen, wo ich es einstellen sollte, also glaube ich nicht, dass mein Selektor das Problem ist.
  3. Beide JQuery Pakete über NuGet (spätestens JQuery Release und die JQuery UI Combined Library)
  4. ich wieder aufgebaut haben installiert wurden/reinigte die Visual Studio-Lösung (in Verzweiflung), schloss die lokale IIS-Host nach unten und es zurückgesetzt. ..

Was vermisse ich? Intellisense erkennt sogar, dass die Methode existiert und gibt mir Vorschläge für Parameter.

Gibt es etwas Einfaches, das ich verpasst habe?

+1

Nur um sicher zu sein, haben Sie überprüft, dass der jquery ui Pfad korrekt ist? Kannst du die Chrome-Konsole für 404-efrors einchecken? – Chandu

+0

Sure - Chrome Console kommt zurück mit: Uncaught TypeError: Objekt [object Object] hat keine Methode 'datepicker' – Porschiey

+1

Hmm, nur um zu kichern, können Sie Ihre Skripte mit denen von Google's CDN ersetzen:

Antwort

5
Required scripts 
---------------- 

<link href="@Url.Content("~/Content/themes/base/jquery-ui.css")" rel="stylesheet" type="text/css" /> 
    <script src=”@Url.Content("~/Scripts/jquery-1.9.1.js")" type="text/javascript"></script> 
    <script src=”@Url.Content("~/Scripts/jquery-ui-1.10.0.js")" type="text/javascript"></script> 



<p>Date:<input type="text" id="Dob" class="datefield" /></p> 



<script type="text/javascript"> 
     $(document).ready(function() { 
      $("#Dob").datepicker({ 
       changeMonth: true, 
       changeYear: true 
      }); 
     }); 
    </script> 
+1

Dies wurde als Antwort markiert, da die eigentliche Lösung darin bestand, JQuery2.0 mit JQuery 1.10 zu beenden. - Als ich zu JQuery 1.9 oder 1.10 statt Jquery 2.x ging, begann die Datepicker-Funktion zu funktionieren . – Porschiey

12

Ich fand, dass durch das Auskommentieren des "@ Scripts.Render (" ~/bundles/jquery ")" gegen den Boden von _Layout.cshtml, war ich in der Lage, mein Problem damit zu lösen.

+0

Brilliant. Vielen Dank für Ihre Hilfe. Ich habe Stunden damit verbracht, das Problem zu beheben. – Jon649

+0

Das hat mein Problem auch gelöst! (natürlich einige Jahre später) – xDJR1875

2

Try this:

 <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 

oder dies:

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

Statt dessen:

<script type="text/javascript" src="../../Scripts/jquery-ui-1.10.3.js"></script> 
4

Haben Sie überprüft Sie haben zweimal nicht JQuery verwiesen? Ich fand, dass ich es in mein Layout und aus meiner Sicht aufgenommen hatte. Durch das Entfernen einer Referenz wurde das Problem behoben.

+0

Ich habe das auch gefunden. Und der zweite war anders als der erste. Entfernen der 2. behoben mein Problem. – woodge

1

Ich hatte dieses Problem beim Upgrade auf jQuery 2. Ich wurde von der Änderung in der Ordnerstruktur innerhalb der jQuery Download abgefangen; Die Datei jquery-ui.js befand sich nicht mehr in einem ui-Ordner und daher wurde mein Skript-Tag falsch zugeordnet.

Kurz gesagt, überprüfen Sie, ob Ihre Referenzen korrekt sind!

Verwandte Themen