我有以下C#代码:
Application["CountTrackViews"] = int.Parse(Application["CountTrackViews"].ToString()) + 1;
这里的问题是这个应用程序对象没有起始值,我真的不知道应该给出哪个起始值,我怎么能这样做(这个应用程序对象应该计算时间)
希望得到帮助,谢谢!
答案 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分钟不活动后回收。然后您的计数器将丢失并在用户下次加载时重置。
正如大卫建议的那样,请将其存储在数据库甚至文本文件中。