在viewstate(或其他想法)中的asp.net商店对象类

时间:2010-09-08 13:36:43

标签: asp.net postback viewstate

我已经建立了这样一个类:

private class TestResults
{
    public bool IsAdmitted { get; set; } 
    public bool IsDuplicate { get; set; } 
    public bool IsVerified { get; set; } 
}

通过单击radiobutton列表,可以在回发时设置此类的值。但问题是我不知道如何在多个回发中保存这些值。我想过使用viewstate,但我不太确定如何使用这个类。

也许我在这里错过了一些重要的事情。

希望有人能指出我正确的方向

谢谢你的时间! 亲切的问候, 标记

4 个答案:

答案 0 :(得分:6)

将这个类放在viewstate中非常简单:

ViewState["SomeUniqueKey"] = myTestResults;

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

您的课程需要使用[Serializable]属性进行标记。

答案 1 :(得分:1)

尝试使用会话缓存

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

稍后检索:

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

答案 2 :(得分:0)

您可以使用

Session.Add("TestResults", Your_Test_Result_Object)

Session Object Explanation

答案 3 :(得分:0)

如果您在整个应用中的其他页面或其他位置不需要此值,则可以使用viewstate。

使用Page.ViewState对象包进行存储:

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

您还可以在页面上的属性中包含对它的访问权限:

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