J'avais l'habitude d'utiliser HttpModule pour modifier les cookies avant Response. Aujourd'hui, j'ai rencontré Asp.net prenant l'initiative et convertissant les caractères chinois ꪻ que j'ai travaillé si dur pour convertir en caractères chinois, sans parler des contrôles Web d'Asp.net, même du contrôle HTML. Ranat=server sera converti de force en caractères chinois pour la sortie.
Si vous écrivez le contenu de la page ligne par ligne à l'aide de Response, ce serait trop fatiguant et sujet aux erreurs. Le meilleur moyen est donc d'effectuer une autre conversion une fois l'action de génération d'Asp.net terminée, afin qu'Asp.net n'ait rien à voir avec vous.
Toutes les actions de génération d'Asp.net sont réalisées dans la méthode Render, nous allons donc effectuer des opérations sur la méthode Render :
remplacement protégé void Render (écrivain HtmlTextWriter)
{
StringWriter sw = new StringWriter();
HtmlTextWriter htmlw = new HtmlTextWriter(sw);
//Supprimer le contenu généré de la page
base.Render(htmlw);
htmlw.Flush();
htmlw.Close();
chaîne pageContent = sw.ToString();
//Modifier le contenu
pageContent = KillTheBugAndShit(pageContent);
Response.Write(pageContent);
//base.Render (écrivain);
}
En utilisant cette méthode, vous pouvez également supprimer le contenu généré par la page et générer une page statique à utiliser.
(Je pense avoir écrit un article avec ce contenu l'année dernière... je ne m'en souviens pas)