private int ViewState_UserID {
get { return (int)ViewState["UserId"]; }
set { ViewState["UserId"] = value; }
}
[ViewStateProperty("UserID")]
protected int ViewState_UserID { get; set; }
// 或自動以屬性名稱作為 Key
[ViewStateProperty]
protected int ViewState_UserID { get; set; }
BasePage : Page,引用 System.Reflection、System.Linq。ViewStatePropertyAttribute : Attribute,標記目標屬性。BasePage 載入時透過反射掃描所有標記屬性,自動對應 ViewState 存取。[AttributeUsage(AttributeTargets.Property)]
public class ViewStatePropertyAttribute : Attribute {
public string ViewStateName { get; private set; }
public ViewStatePropertyAttribute() { ViewStateName = string.Empty; }
public ViewStatePropertyAttribute(string name) { ViewStateName = name; }
}
後續所有頁面繼承 BasePage 即可享用簡潔語法。