尝试计数页面视图时出错ASP.NET C#

时间:2013-06-18 16:28:40

标签: asp.net .net global-variables

我有以下C#代码:

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

这里的问题是这个应用程序对象没有起始值,我真的不知道应该给出哪个起始值,我怎么能这样做(这个应用程序对象应该计算时间)

希望得到帮助,谢谢!

2 个答案:

答案 0 :(得分: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;

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

但请注意,正如上面的评论中所述,只要应用程序重置,此计数器就会重置

答案 1 :(得分:1)

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

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