首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

一個較完整的關鍵字過濾解決方案(下)

     編輯:關於ASP.NET

討論上篇遺留陷阱:IForbiddenWordFilter.GetFilterType 在 OnPostMapRequestHandler 階段調用,此時 Handler 已生成但控件 (如 txtPassword) 尚未實例化,直接存取 this.txtPassword.ID 拋 NullReferenceException。解法:用 Lambda 運算式樹取得欄位名稱字串:

Expression<Func<object>> action = () => this.txtPassword;
var name = (action.Body as MemberExpression).Member.Name;

編譯期完成欄位名提取,享受重構支援。適用場合:輸入端過濾意味服務端拿到已替換內容,若需原始輸入則不適用。更多思考留給讀者。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved