c# - 如何在母版页中设置 View 状态?

标签 c# asp.net

我需要检查母版页是否触发了事件。为此,我在 View 状态中保留了一个计数。这是在页面加载时抛出异常。我只是在页面加载中调用以下行

Int32 count = Int32.Parse(this.ViewState["Count"].ToString());

请帮忙。

最佳答案

这在少数情况下会抛出异常。

  1. 键“Count”尚未处于 View 状态。 ViewState["Count"] 将返回 null 并且 .ToString() 调用将抛出一个 NullReferenceException
  2. 无法将“Count”的值解析为 int,抛出 FormatException

要尝试的事情:

  • 您应该检查代码的顺序,以确保在尝试从中读取之前设置了 count 的值。

您的代码可以改进如下:

Int32 count;
string countStr = this.ViewState["Count"];

if(!string.IsNullOrEmpty(countStr )
{
    bool ok = Int32.TryParse(countStr, out count);

    if(ok)
    {
        // Do stuff with count
    }
}
  • 您可以考虑使用 Session而不是在页面之间存储自定义数据的 ViewState。

关于c# - 如何在母版页中设置 View 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6678015/

相关文章:

c# - .Net Core 中缺少 IsGenericType 和 IsValueType 吗?

c# - 动态不尊重返回类型

asp.net - Visual Studio 在记事本中打开网页

ASP.NET Core 自定义参数绑定(bind)

ASP.NET:这个 HttpModule 有什么作用? System.ServiceModel.Activation.HttpModule

c# - 如何在asp.net mvc 中为属性路由添加默认参数

c# - 底层连接已关闭 : The server committed a protocol violation. FTP

c# - 我将如何反转这个看起来简单的算法?

c# - 由于不区分大小写的 URL 和默认值,如何避免 ASP.NET MVC 中的重复内容?

c# - 如何在 Javascript 中设置 ASP.NET 服务器时间