以前は Response の前に HttpModule を使用して Cookie を変更していましたが、今日、Asp.net が率先して、一生懸命変換した漢字を漢字に変換することに遭遇しました。もちろん、Asp.net の Web コントロールも同様です。 Ranat=server は強制的に漢字に変換されて出力されます。
Response を使用してページのコンテンツを 1 行ずつ書き出すと、非常に面倒でエラーが発生しやすくなります。したがって、最善の方法は、Asp.net の生成アクションが完了した後に別の変換を実行して、Asp.net が何の関係もなくなるようにすることです。
Asp.net のすべての生成アクションは Render メソッドで完了するため、Render メソッドで操作を実行します。
protected オーバーライド void Render(HtmlTextWriter ライター)
{
StringWriter sw = 新しい StringWriter();
HtmlTextWriter htmlw = 新しい HtmlTextWriter(sw);
// ページの生成されたコンテンツを取り出します
Base.Render(htmlw);
htmlw.Flush();
htmlw.Close();
文字列ページコンテンツ = sw.ToString();
//内容を変更する
pageContent = KillTheBugAndShit(pageContent)
;
//base.Render (ライター);
}
このメソッドを使用すると、ページによって生成されたコンテンツを取り出して、使用する静的ページを生成することもできます。
(去年もこの内容の記事を書いた気がします…覚えてません)