5

Sto utilizzando l'ultimo framework MVC e bundle.Unchaught TypeError: Impossibile impostare la proprietà 'non invadente' di undefined

Il "jqueryval" fascio di default che MVC crea sta causando un errore di javascript

Gli script sulla mia pagina vengono emessi in questo modo

<!-- In head --> 
<script src="/Scripts/modernizr-2.6.2.js"></script> 
<script src="/Scripts/jquery-2.0.2.js"></script> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript" src="/Content/Misc.js"></script> 


<!-- Bottom of doc --> 
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script> 
<script src="/Scripts/jquery.validate.unobtrusive.js"></script> 

mio Bundle:

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

Che cosa è sta andando male?

+0

Se l'ordine è un problema, creare un pacchetto per file di script e caricarli nel codice nell'ordine desiderato. –

+0

Ho pensato che potrebbe essere stato così, ma quando inserirlo manualmente non fa differenza – Chris

+1

Questa è probabilmente una domanda stupida, ma hai effettivamente incluso ** jQuery ** anche nella tua pagina? Sembra riferirsi all'oggetto non definito, e quell'oggetto dovrebbe essere jQuery. – Ian

risposta

8

Nel pacchetto, lo si imposta per includere jquery.validate* e jquery.unobtrusive*, che normalmente funzionerebbe. Ma se guardi il tuo output, non tutti i file dovrebbero essere lì. Il punto è che jquery.unobtrusive.validate richiede jquery.validate da includere (che, come puoi vedere, non è, dal tuo output). Apparentemente, i file non sono effettivamente disponibili nel progetto e quindi non vengono trovati dal bundler. Assicurati di avere tutti i file necessari nel tuo progetto in modo che il tuo bundler possa trovarli e visualizzarli.

0

Ho scoperto che sostituire i caratteri jolly con il nome di script js completo funzionava.

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