2013-06-06 8 views
6

Quando eseguo il mio codice ottengo questo errore:Impossibile ottenere il valore della proprietà 'discreto': oggetto è null o undefined

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

Sarebbe normale, ma io sono l'aggiunta di tutte le cose jquery I necessità:

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 

che carico presente sulla mia forma principale:

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

E il mio fagotto config ha:

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

Ho nella mia cartella Script tutti i file relativi.

Perché viene visualizzato questo errore? commento se avete bisogno di vedere qualsiasi file e sarò lieto pubblicarlo

EDIT:

Gli script vengono caricati (ho controllato) Questa linea dà l'errore:

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

ERRORE:

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

Se sei sicuro che tutti i file ci siano (es. "Jquery.validate.unobtrusive.js"?) Dovresti controllare tutti gli script con un comando "grep" o "Notepad ++" cercando l'elemento "discreto" . – Pragmateek

+0

Ho fatto un pacchetto di aggiornamento dalla console del gestore pacchetti 2 minuti fa, quindi dovrebbero essere corretti. – AAlferez

+0

Ho controllato e l'elemento è lì – AAlferez

risposta

8

trovato il problema.

ho avuto un altro vista parziale che è stata l'aggiunta di uno script "~/Scripts/jquery ..."

Così ho avuto il fagotto nella vista principale e questo in un parziale di un menu che è stato sempre il rendering . Sembra che solo l'ultimo sia stato preso in considerazione e non è stata aggiunta la Non invadente. Rimuovendolo dalla vista parziale e lasciando solo quello nella vista principale, l'ha risolto.

Grazie per le ipotesi.

+1

Grazie mille. Stavo combattendo con questo problema per più di 5 ore. – nishantvodoo

-1

Ciò che Code Junkie intende dire è che hai aggiunto la discreta chiave abilitata per javacript in web.config.

Sarà necessario aggiungere questo in appSettings:

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

L'ho già aggiunto, non è questo il problema – AAlferez

2

Ho ricevuto questo messaggio di errore per un motivo diverso, quindi avrei condiviso.

Utilizziamo la CDN di Microsoft per servire il file jquery.validate.min.js e il nostro client utilizzava un filtro con lo asp.netcdn.com su una lista nera che impediva il caricamento.

Fare in modo che il client inserisca nella lista bianca il CDN o modificare la CDN risolverebbe il problema. In realtà, dovremmo avere un fallback, quindi è stata pubblicata una versione locale se la CDN non era disponibile, ma non l'abbiamo ancora implementata.

3

Ho ottenuto questo per un'altra ragione molto più ossea. Avevo jquery.validate.unobtrusive.js prima di jquery.validate.min.js nella mia pagina.

Basta spostare convalidare sopra convalida validate.unobtrusive risolto il problema.

Problemi correlati