0

我有以下 C# 代码:

        Application["CountTrackViews"] = int.Parse(Application["CountTrackViews"].ToString()) + 1;

这里的问题是这个应用对象没有起始值,我真的不知道应该给哪个起始值,怎么办(这个应用对象要统计view的时间)

希望得到帮助,谢谢!

4

2 回答 2

2

如果您可以添加Global.asax并使用该Application_Start事件,那么您可以在那里初始化该值。像这样的东西:

protected void Application_Start()
{
    Application["CountTrackViews"] = 0;
}

如果做不到这一点,您可以在使用它之前检查该值是否存在。像这样的东西:

var viewCount = 0;
int.TryParse(Application["CountTrackViews"], out viewCount);
Application["CountTrackViews"] = viewCount + 1;

这是未经测试的代码,您可能需要稍微调整一下。但这个想法很简单。从默认值开始,尝试解析当前值,如果解析失败则默认为默认值。将所有这些包装在某种全局(静态)辅助方法中,这样您就不必在多个地方重复这些行。

但是请记住,正如上面评论中所述,该计数器在应用程序重置时重置。

于 2013-06-18T16:40:56.067 回答
1

这是在超过 20 分钟的任何时间段内记录页面浏览量的不好方法。默认情况下,在 IIS 中,应用程序将在 20 分钟不活动后回收。然后您的计数器将丢失并在下次用户加载时重置。

正如大卫建议的那样,将其存储在数据库甚至文本文件中。

于 2013-06-18T16:34:28.957 回答