ViewState提交後丟失,居然是OnInit搞的鬼

提交後報錯,斷點看ViewStat值沒有了。排查半天徹底不知道怎麼回事。ide

百度搜索了下ViewState提交丟失。而後CSDN一個帖子說的半拉子話提點了我。函數

 

而後想到我常常重寫這些函數。之前怎麼沒遇到。而後檢查代碼改寫後解決,雖然不知道怎麼回事,但解決了。spa

 

原代碼以下:code

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    if (!IsPostBack)
    {
        vOrderID = Convert.ToInt32(Request.QueryString["OrderID"]);
    }
}
protected int vOrderID
{
    get
    {
        return (ViewState["vOrderID"] == null) ? 0 : Convert.ToInt32(ViewState["vOrderID"]);
    }
    set
    {
        ViewState["vOrderID"] = value;
    }
}

就出在第一個函數上。改爲以下放到OnPreLoad就對了。blog

protected override void OnPreLoad(EventArgs e)
{
    base.OnPreLoad(e);
    if (!IsPostBack)
    {
        vOrderID = Convert.ToInt32(Request.QueryString["OrderID"]);
    }
}
protected int vOrderID
{
    get
    {
        return (ViewState["vOrderID"] == null) ? 0 : Convert.ToInt32(ViewState["vOrderID"]);
    }
    set
    {
        ViewState["vOrderID"] = value;
    }
}

備忘,同時但願能給你們提供幫助。get

相關文章
相關標籤/搜索