2014-07-14 2 views
1

J'essaye de charger fullcalendar en utilisant le framework C# MVC. J'ai ajouté ces lignes à mon _Layout.cshtml dans le dossier « Partagé »Uncaught TypeError: Undefined n'est pas une fonction Problème dans MVC C# using fullcalendar

@Styles.Render("~/Public/fullcalendar/fullcalendar.css") 

@Scripts.Render("~/Public/fullcalendar/lib/jquery.min.js") 
@Scripts.Render("~/Public/fullcalendar/lib/moment.min.js") 
@Scripts.Render("~/Public/fullcalendar/fullcalendar.js") 

et je l'ai ajouté à la section de la tête d'un Index.cshtml pour la vue que je veux montrer le calendrier

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('#calendar').fullCalendar({ 
      }); 
     }); 
</script> 

juste pour fou rire j'ai remplacé le $ (« calendrier # » ... peu avec et alerte (« test ») et il surgissaient très bien.

Dans la console chromée il me donne cette erreur

Uncaught TypeError: undefined is not a function Index:57 
(anonymous function) Index:57 
j         jquery.min.js:2 
k.fireWith       jquery.min.js:2 
n.extend.ready      jquery.min.js:2 
I         jquery.min.js:2 

Et cela est en ligne 57 sur l'indice

error

Donc, pour une raison quelconque, je pense que fullcalendar n'est pas ou se charger d'initialisation? Je ne suis pas vraiment sûr car c'est la première fois que j'utilise des langages web comme ça. Est-ce que quelqu'un a des suggestions ou sait comment résoudre ce problème? Toute aide serait appréciée.

EDIT J'ai aussi essayé d'aller à l'URL dans le code HTML généré pour vous assurer que les fichiers sont accessibles et web tous les fichiers .js et .css dans _Layout.cshtml chargé

+1

peut vous reproduire sur [jsfiddle] (http://jsfiddle.net/)? – tocallaghan

+0

Je n'ai pas réussi à l'utiliser dans jsfiddle, mais j'ai trébuché sur la solution en essayant de la faire fonctionner. Donc merci pour ça. Je posterai la réponse ci-dessous. – Andrew

Répondre

3

J'étais confus quant à l'utilisation de @ Script.Render ("...") et l'utilisait incorrectement. J'ai été capable de le faire fonctionner en ayant les parties @ Script.Render ("...") dans le corps juste avant que RenderSection() soit appelé à l'intérieur de _Layout.cshtml. Ensuite, dans la partie de la tête sur la page que je tentais d'utiliser le calendrier que je devais aussi ajouter ceci:

<link rel='stylesheet' href='~/Public/fullcalendar/fullcalendar.css' /> 
<script src='~/Public/fullcalendar/lib/jquery.min.js'></script> 
<script src='~/Public/fullcalendar/lib/moment.min.js'></script> 
<script src='~/Public/fullcalendar/fullcalendar.js'></script> 

Je pense qu'une partie de mon problème vient de ne pas faire des trucs de développement web avant, mais j'espère que cela aide quelqu'un d'autre le long du chemin.

+0

Je donnerais 100 up-votes si je pouvais. Mais encore je ne peux pas comprendre comment cela fonctionne seulement en déplaçant le code de la section principale à la section du corps? –

+0

[Cela devrait aider un peu.] (Http://stackoverflow.com/a/3531534/650944) – Andrew

0

Vous avez probablement des conflits avec des faisceaux en _Layout.cshtml au bas de la page:

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

Vous pouvez essayer d'ajouter des scripts fullcalendar à ce paquet ou supprimer paquet ou faire quelque chose d'autre

Questions connexes