Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 视图状态不保留值_C#_Asp.net_Viewstate - Fatal编程技术网

C# 视图状态不保留值

C# 视图状态不保留值,c#,asp.net,viewstate,C#,Asp.net,Viewstate,我试图通过以下方式使用视图状态保留控件的“可见”属性 public bool showstatusbox { get { return Convert.ToBoolean(ViewState["statusbox"]); } set { ViewState["statusbox"] = value; } } 除此之外,我还应该做些什么来保持价值。因为,虽然我将该值存储在视图状态中,但在回发时,它将变为null。您是否确认该控件的EnableViewState为true?我记得存

我试图通过以下方式使用视图状态保留控件的“可见”属性

public bool showstatusbox {
    get { return Convert.ToBoolean(ViewState["statusbox"]); }
    set { ViewState["statusbox"] = value; }
}

除此之外,我还应该做些什么来保持价值。因为,虽然我将该值存储在视图状态中,但在回发时,它将变为null。

您是否确认该控件的EnableViewState为true?

我记得存在此问题,并使用如下代码解决了此问题:

protected override object SaveViewState()
{
    return new object[] { 
        TaxRate, 
        SubTotal, 
        Tax, 
        LetterId, 
        ActivityIds, 
        AssociateLettersToInvoice 
    };
}

protected override void LoadViewState(object savedState)
{
    var array = (object[])savedState;
    TaxRate = (decimal)array[0];
    SubTotal = (decimal)array[1];
    Tax = (decimal)array[2];
    LetterId = (int?)array[3];
    ActivityIds = (string)array[4];
    AssociateLettersToInvoice = (bool)array[5];
}

此代码看起来是正确的,您应该添加使用此属性的任何其他代码。您可以发布您的aspx/ascx代码吗?您确定没有其他代码在此属性上践踏吗?毕竟,它本质上是一个全局变量。你可以尝试将setter
设置为private
,看看你是否在其他地方得到了设置值的指示……你能简单地解释一下你试图在上面做什么吗?@Rocky-我不相信在不知道什么让你困惑的情况下我能更好地解释它。好的。你确定你在回发后检查了这个变量?由于viewstate作为隐藏字段存储在客户机上,因此它仅在发布表单时返回(SubmitBehavior)。