开发者

asp.net store object class in viewstate (or other ideas)

I've build a class like this:

private class TestResults
{
    public bool IsAdmitted { get; set; } 
    public bool IsDuplicate { get; set; } 
    public bool IsVerified { get; set; } 开发者_如何学Python
}

The values of this class are set at postback by clicking a radiobutton list. Problem however is I don't know how to save this values across multiple postbacks. I thought of using viewstate but I'm not quite sure how to do it with this class.

Maybe I'm missing some important thing here.

Hope someone can point me in the right direction

thanks for your time! Kind regards, Mark


Just sticking this class in viewstate is pretty simple:

ViewState["SomeUniqueKey"] = myTestResults;

var testResults = (TestResults)ViewState["SomeUniqueKey"];

Your class will need to be marked with the [Serializable] attribute though.


try using the Session cache instead

 var testResults = new TestResults();
 //set values
 Session["TestResults"] = testResults;

Retrieving them later on:

 var testResults = Session["TestResults"] as TestResults;
 if (testResults != null)
 {
      //use it
 }


You can use

Session.Add("TestResults", Your_Test_Result_Object)

Session Object Explanation


If you don't need this value on other pages or in other places throughout the app, you can use viewstate.

Use the Page.ViewState object bag to store it:

public partial class Page1 : Page {
    protected void button1_click(object sender, EventArgs e) {
        ViewState["myObject"] = testResultsObject;
    }
}

You could also wrap the access to it in a property on the page:

public partial class Page1 : Page {
    public TestResults TestResults { 
        get{ return ViewState["TestResults"] as TestResults; }
        set{ ViewState["TestResults"] = value; }
    }   
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜