J'ai créé un simple HttpModule et un flux de réponse pour reformater la sortie rendue des pages Web (voir les extraits de code ci-dessous).Filtre de réponse ASP.NET pour reformater la sortie rendue des pages ASPX?
Dans le HttpModule je mis le Response.Filter à mon PageStream:
m_Application.Context.Response.Filter = new PageStream(m_Application.Context);
Dans le PageStream j'écrasent la méthode Write pour faire mon reformatage de la sortie rendu:
public override void Write(byte[] buffer, int offset, int count)
{
string html = System.Text.Encoding.UTF8.GetString(buffer);
//Do some string resplace operations here...
byte[] input = System.Text.Encoding.UTF8.GetBytes(html);
m_DefaultStream.Write(input, 0, input.Length);
}
Et ce travail fonctionne correctement lorsque vous l'utilisez sur des pages HTML simples (.html), mais lorsque j'utilise cette méthode sur des pages ASPX (.aspx), la méthode Write est appelée plusieurs fois, divisant le reformatage en plusieurs étapes et potentiellement détruit le opérations de remplacement de chaîne.
Comment résoudre ce problème? Existe-t-il un moyen de laisser la page ASPX PAS appeler Write plusieurs fois, par ex. en changeant sa taille de tampon, ou ai-je choisi la mauvaise approche entièrement, en utilisant cette méthode Response.Filter pour manipuler la sortie rendue?
Bien que votre réponse n'a pas de sens par rapport à ma question, je vérifie naturellement le type de contenu avant de définir le Response.Filter, l'article fourni m'a aidé. Merci. – PropellerHead