以前曾說(shuō)過(guò)用httpmodule來(lái)在response前更改cookie,今天遇到asp.net自做主張,把我辛苦轉(zhuǎn)換的漢字ꪻ這樣的表現(xiàn)形式,又轉(zhuǎn)成漢字,別說(shuō)是asp.net的web控件,就是html控件ranat=server都會(huì)被它強(qiáng)行轉(zhuǎn)換成漢字輸出。
如果把頁(yè)面內(nèi)容一行行用response寫(xiě)出來(lái),那樣太累,而且容易出錯(cuò)。所以最好的辦法是在asp.net的生成動(dòng)作完成之后,再進(jìn)行一次轉(zhuǎn)換,這樣asp.net就拿你沒(méi)有辦法了。
asp.net的所有生成動(dòng)作在render方法中完成,那么我們就對(duì)render方法進(jìn)行手術(shù):
protected override void render(htmltextwriter writer)
{
stringwriter sw = new stringwriter();
htmltextwriter htmlw = new htmltextwriter(sw);
//把頁(yè)面生成內(nèi)容拿出來(lái)
base.render(htmlw);
htmlw.flush();
htmlw.close();
string pagecontent = sw.tostring();
//對(duì)內(nèi)容進(jìn)行修改
pagecontent = killthebugandshit(pagecontent);
response.write(pagecontent);
//base.render (writer);
}
使用這種方法,也可以把頁(yè)面生成的內(nèi)容拿出來(lái)生成靜態(tài)頁(yè)面使用。
(好像去年也寫(xiě)過(guò)這樣內(nèi)容的貼子……不記得了)
新聞熱點(diǎn)
疑難解答
圖片精選