国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net生成靜態后冗余代碼,去掉viewstate生成的代碼

2024-07-10 12:41:21
字體:
來源:轉載
供稿:網友
看著自己網站編譯之后的源文件,里面很多亂七八糟的東西,看了就覺得不舒服
代碼如下:<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE3NjgxMzM0MDIPZBYCZg9kFgIC……
還有form源文件,一看就知道是asp.net的頁面
代碼如下:<form name="form1" method="post" action="smartDropDownList.aspx" id="form1">
知道錯新站長站也是ASP.NET做的,就好奇地看看博客園的首頁源文件,發現沒有這些玩意,后來問了下別人,

網上也找了點資料;

總結了一下自己的想法:
1、如果你的一個頁面沒有什么復雜的數據交互,例如登錄你可以改用成ajax的登錄,單條新聞界面也可以去掉,如果有留言也可以采用ajax的方式去完成!

2、后臺管理頁面,數據交互性一般都有點復雜,我就覺得沒有什么必要去掉哪些東西了,反正后臺對SEO沒有任何影響,我好奇地看了看博客園的后臺也是有的
不廢話了,直接貼代碼,在你的頁面代碼中加上如下函數
代碼如下:
protected override void Render(HtmlTextWriter writer)
{
System.IO.StringWriter html = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(html);
base.Render(tw);
string Temp = html.ToString();
string s1 = string.Empty, s2 = string.Empty, s3 = string.Empty, s4 = string.Empty, s5 = string.Empty, s6 = string.Empty;
int i = 0;
int j = 0;
i = Temp.IndexOf("<form");
if (i > 0)
{
j = Temp.IndexOf(">", i);
s1 = Temp.Substring(0, i);
s2 = Temp.Substring(j + 1, Temp.Length - j - 1);
}
i = s2.IndexOf("<input type=/"hidden/" name=/"__VIEWSTATE/" id=/"__VIEWSTATE/"");
if (i > 0)
{
j = s2.IndexOf(">", i);
s3 = s2.Substring(0, i);
s4 = s2.Substring(j + 1, s2.Length - j - 1);
}
i = s4.IndexOf("<input type=/"hidden/" name=/"__EVENTVALIDATION/" id=/"__EVENTVALIDATION/"");
if (i > 0)
{
j = s4.IndexOf(">", i);
s5 = s4.Substring(0, i);
s6 = s4.Substring(j + 1, s4.Length - j - 1);
Temp = s1 + s3 + s5 + s6;
}
else
{
Temp = s1 + s3 + s4;
}
Temp = Temp.Replace("</form>", "");
Temp = Temp.Replace("/r/n", "");
tw.Close();
Response.Write(Temp);
}

其實就是重寫了Render方法,然后截取html源文件就能解決了,更具自己的情況去使用,覺得好用就用下!
如果你覺得簡單,或者不屑,不要噴,有問題請拍磚,謝謝!

2.查詢老外的解決辦法,是將代碼移動到尾部,但發現部分網頁報錯, 之后發現把網頁的enableviewatate=false 明顯的viewstate 代碼減少。

  原因總結:
  (1)、這是由于net記錄控件視圖狀態的. asp.net服務器控件默認都記錄的.
  如果你確定一個控件是不需要記錄控件狀態,可以給他的EnableViewState賦值false禁用.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌拉特前旗| 曲麻莱县| 平塘县| 安溪县| 汝城县| 丁青县| 鞍山市| 天门市| 香河县| 汾阳市| 龙井市| 胶南市| 额尔古纳市| 葫芦岛市| 岱山县| 侯马市| 罗甸县| 鸡东县| 叙永县| 城市| 阳城县| 遂昌县| 东乡县| 涟水县| 临湘市| 分宜县| 彩票| 全州县| 桦川县| 桑日县| 绍兴县| 察雅县| 木兰县| 泸水县| 二连浩特市| 大余县| 天等县| 宁阳县| 宁阳县| 晋城| 鹤峰县|