繁体   English   中英

无法使ViewState在生产服务器上工作

[英]Can't get ViewState to work on production server

我在Vista盒(IIS7)上开发了一个ASP.NET应用程序。 在将其部署到产品服务器(W2K3 / IIS6)之前,它可以正常工作。 部署后,我得到一个一致的“对象引用未设置为对象的实例”。 从我的ViewState对象读取时,该对象确定按钮显示的是“打开”还是“关闭”图像。

页面加载的代码将ViewState初始化为on:

if (!IsPostBack)
{
    ViewState["ButtonState"] = true;
}

然后,我在OnPreRender方法中检查按钮的状态:

protected override void OnPreRender(EventArgs e)
{
    base.OnPreRender(e);

    if ((bool)ViewState["ButtonState"])
    {
        MyButton.ImageUrl = Constants.ButtonIcon;
    }
    else
    {
        MyButton.ImageUrl = Constants.NoButtonIcon;
    }
}

为了在按钮状态之间切换,我捕获了按钮的单击并在ViewState中切换值:

protected void MyButton_Click(object sender, ImageClickEventArgs e)
{
    ViewState["ButtonState"] = !(bool)ViewState["ButtonState"];
}

在开发箱上,这非常完美。 但是,在实时框上,页面可以正确加载,但是当您单击按钮(或者实际上是引起回发的任何其他按钮)时,在回发后会收到错误消息。

有人可以帮忙吗?

在服务器的web.config或machine.config文件中是否设置了<system.web> <pages enableViewState =“ false” />?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM