290 messaggi dal 08 luglio 2008
Ciao a tutti,

ho un problema che non riesco a risolvere.

Ho creato una soluzione web in asp.net 4.5.1 (vs2015) ed ho notato che in automatico viene aggiunto un tag script di inclusione a jquery a fondo pagina.

Il mio problema è che ho bisogno che l'inclusione di jquery sia all'interno del tag head della pagina.

Cosi ho aggiunto manualmente il tag src però cosi ritrovo 2 inclusioni a jquery...e non mi sembra corretto.

Secondo voi c'è un modo per spostarlo nell'head?

O alla peggio, c'è un modo perchè .net non includa automaticamente jquery e lasci a me la scelta di dove inserirlo manualmente?

grazie mille

:)
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
ASP.NET non include automaticamente jQuery ma devi trovare il punto in cui viene incluso a fondo pagina. Non so se la tua è un'applicazione WebForms o MVC ma se vai nella MasterPage o nella view _Layout.cshtml troverai una riga del genere:

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

Questo è il punto in cui jQuery viene incluso via bundle. Rimuovilo o spostalo nel tag head.

ciao,
Moreno

Enjoy learning and just keep making
290 messaggi dal 08 luglio 2008
ciao BrightSoul, grazie per la risposta.

la mia è una Soluzione web (web form) in .net 4.5.1.

Anche io pensavo che .net non inserisse nulla, ma non è cosi.

ti spiego, se io creo una pagina normale, non succede nulla.

Se in quella pagina inserisco un controllo fieldrequired su una textbox, in automatico vedo, dall'output html, che viene aggiunto un riferimento a jquery.

Questo perchè lato js i controlli vengono fatti da .net sfruttando jquery (questo è quello che ho dedotto)

Ulteriore prova ne è il fatto che se da global.asax inserisco un " ScriptManager.ScriptResourceMapping.RemoveDefinition("jquery"," le pagine vanno in errore restituendomi un errore .net "WebForms UnobtrusiveValidationMode richiede un oggetto ScriptResourceMapping per 'jquery'. Aggiungere un oggetto ScriptResourceMapping denominato jquery (distinzione tra maiuscole e minuscole).")


Grazie
290 messaggi dal 08 luglio 2008
Nessuno ha notato questa cosa in .net 4.5.1?

help...

grazie :)
3.939 messaggi dal 28 gennaio 2003
webbondo ha scritto:
Nessuno ha notato questa cosa in .net 4.5.1?

help...

grazie :)


Io non l'avevo mai notato, perchè, anche avendo vs2015, ho sempre sperimentato col framework 4.

Oggi, leggendo il tuo post, ho provato. Un semplice sito web vuoto. Ho aggiunto una pagina, vuota.
Ho aggiunto un textbox e un controllo RequiredFieldValidator.

Non volevo crederci: la pagina non funziona! errore del tipo "occorre uno scriptmanager ... chiamato jquery ..."

Insomma, adesso debbo usare jquery, che mi piaccia o no? e questo in una stupidissima pagina aspx?

se questo è vero, capisco perchè non ho mai voluto abbandonare vs2010.

ciao
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,


ti spiego, se io creo una pagina normale, non succede nulla.
Se in quella pagina inserisco un controllo fieldrequired su una textbox, in automatico vedo, dall'output html, che viene aggiunto un riferimento a jquery.

Ok, capito. Nella tua applicazione, da qualche parte (forse nel global.asax?) dovrebbe esserci una riga di codice del genere:
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", 
    new ScriptResourceDefinition
{
Path = "~/scripts/jquery-1.7.2.min.js",
DebugPath = "~/scripts/jquery-1.7.2.min.js",
CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.min.js",
CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.js",
  
});

Puoi modificare i percorsi per includere la specifica versione di jQuery che intendi utilizzale, purché poi sia compatibile con jquery unobtrusive validation, che è l'altra libreria js che ti permette di fare validazione lato client.
Non sono ruscito a trovare un modo per spostare l'inclusione degli script nei tag <head> ma questo non dovrebbe essere un problema. Puoi mettere tutti gli altri file javascript subito prima la chiusura del body. Perché è importante averli in <head>? Di solito si mettono in fondo per dare all'utente l'impressione che la pagina si stia caricando più velocemente. Infatti il browser così può renderizzare l'HTML appena gli arriva e mettersi a scaricare gli script subito dopo, quando li incontra a fondo pagina.

L'unica soluzione di ripiego che mi viene in mente al momento è dare un percorso di un file vuoto alla ScriptResourceDefinition e poi aggiungere manualmente jQuery tra i tag head.


Insomma, adesso debbo usare jquery, che mi piaccia o no?

No, puoi tornare al vecchio comportamento aggiungendo questo nell'elemento <appSettings> del web.config.

<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />

Ne abbiamo discusso qui:
http://forum.aspitalia.com/forum/post/403620/Piccolo-Chiarimento-Errore-UnobtrusiveValidationMode.aspx

ciao,
Moreno

Enjoy learning and just keep making
290 messaggi dal 08 luglio 2008
Ciao BrightSoul.

grazie mille per l'esaustiva spiegazione.

Penso che disabiliterò UnobtrusiveValidationMode

:)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.