首先,狀態碼500是非已知類型服務器錯誤,今天發現的是動態加載頁面時的頁面驗證錯誤,因為是動態往頁面中寫html元素,html元素的不規范導致頁面驗證失敗,所以中斷處理請求。
接下來是解決方案,前輩們已經給出了不少了,下面就這些方法談談自己的看法:
一、在頁面文件的Page標簽里加上ValidateRequest="false"的屬性值
此方法對於沒有顯著頁面元素錯誤(有潛在危險、但非不可執行)的程序是可以的,前提是你不需要考慮防范頁面腳本攻擊等危及程序安全的因素。
二、在配置文件web.config的system.web節下添加“<pages enableEventValidation="false"/>”元素
這個與上面的方法一樣,不同的是作用域擴大到了受此配置文件影響所有頁面文件。
三、為頁面的ScriptManager控件添加EnablePartialRendering="false"的屬性
此方法不是直接解決或規避問題的,是為了將詳細的頁面錯誤顯示出來,以便找到需要修正的地方,個人覺得這才是正道嘛,不能躲避錯誤,而應盡量不讓錯誤發生。
所以,個人推薦:
為頁面的ScriptManager控件添加EnablePartialRendering="false"的屬性 ---》 找出錯誤 -- 》 修改。