2010-09-20 4 views
1

J'ai besoin d'afficher l'exception du serveur dans le navigateur client, mais il semble qu'il y ait des caractères illégaux dans le fichier exp.Message qui amène le script client à déclencher une erreur "littéral chaîne non terminée". une idée pour rendre les chaînes comme exp.Message sans danger pour les scripts client?sécuriser les chaînes côté serveur pour les scripts clients

catch (Exception exp) 
    { 
     string __script = string.Format(@"alert('{0}');", exp.Message); 
     ScriptManager.RegisterStartupScript(this, this.GetType(), "theError", __script, true); 
    } 

Répondre

1

après beaucoup de recherche, a finalement trouvé une solution dans le blog de rick strahl: malheureusement EncodeJsString

0

Essayez HttpUtility.HtmlEncode

using System.Web; 

... 

var encodedMessage = HttpUtility.HtmlEncode(exp.Message); 
string __script = string.Format(@"alert('{0}');", encodedMessage); 
+0

HtmlEncode n'a pas aidé dans ce numéro. J'ai vérifié la valeur de retour de HtmlEncode. il semble que certains caractères illégaux (tels que des guillemets simples) sont toujours là. – syntaxcheck

Questions connexes