Domanda

Ho una serie di controlli su una pagina ASP. Alcuni sono all'interno di un UpdatePanel e altri no.

Se inserisco un tag XML in una delle caselle di testo (ad es. " <foo> ") allora tutti i controlli all'interno di UpdatePanel non funzionano. Non appena i tag vengono rimossi, tutto va bene.

Il mio pulsante "submit" si trova in UpdatePanel e il punto di interruzione su btnSubmit_Click viene colpito solo quando non ci sono tag nelle caselle di testo.

Sono un appassionato di C # da molto tempo ma abbastanza nuovo in ASP.NET, quindi potrebbe mancare qualcosa di ovvio ... questo non è il comportamento che mi aspetto.

È stato utile?

Soluzione

Se togliessi UpdatePanel dalla pagina, scopriresti che il postback stava causando un errore perché .NET pensa che " < foo > " ; è un bit potenzialmente pericoloso di dati da accettare sul server. Vedi questa domanda su StackOverflow. Non vedi l'errore perché la pagina di errore HTML viene restituita alla chiamata ajax di UpdatePanel anziché direttamente al tuo browser e UpdatePanel non sa cosa farne.

Puoi disattivare il controllo aggiungendo

ValidateRequest="false"

in < @Page ... > direttiva nella parte superiore del file aspx. Oppure puoi modificare web.config per ottenere lo stesso effetto direttamente sulla tua app web.

Altri suggerimenti

Non puoi mettere markup in una textarea. È necessario eseguire l'escape HTML di qualsiasi carattere di markup all'interno di textarea, proprio come con qualsiasi altro elemento.

<textarea>&lt;foo> &amp; &lt;bar></textarea>

Anche se in pratica i browser solitamente risolvono ciò che intendi e mostrano qualsiasi < caratteri così come sono, è ancora HTML non valido e XML non ben formato (presumibilmente questa è anche la radice del tuo problema in ASP.NET , anche se senza un codice specifico è difficile dirlo).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top