Il problema è che quando viene pubblicato sul server, non funzionerà, non importa ciò che si prova. Questa è la protezione ASP.NET XSS, che può essere disabilitato in questo modo:
<%@ Page ... ValidateRequest="false" %>
Il problema è che dovrete stare molto attenti convalidare tutto il postback da soli. Il modo più semplice è quello di sfuggire a tutti i contenuti della casella di testo utilizzando javascript prima di pubblicare. Puoi evaderlo usando lo stesso escape HTML, quindi scansionare il codice lato server.
Aggiornamento: Esempio di fuga. Questo lampeggerà il testo modificato sullo schermo prima del postback - la soluzione ideale è usare un campo nascosto per questo, cioè assegnare un valore ad un campo nascosto, invece dello stesso campo.Questa è la versione più semplice:
<script>
function EscapeField(){
document.getElementById("your client control ID").value =
escape(document.getElementById("your client control ID").value);
}
</script>
E nel code-behind:
this.ClientScript.RegisterOnSubmitStatement(this.GetType(),
"EscapeField", "EscapeField();")
Aggiornamento: Anche in questo caso, avvertimento - se si salva HTML nel database come questo, e poi semplicemente visualizzarlo al cliente, sei direttamente vulnerabile agli attacchi XSS. Ci sono worm che possono trovare e sfruttare il tuo sito web. Assicurati di ripulire l'HTML che stai ricevendo.
http://stackoverflow.com/questions/35504083/need-client-side-validation-for-textbox-if-and-are-used-in-textbox-asp-n – Sachin