在MVC中计算网页浏览量并登录数据库

时间:2016-10-14 16:11:52

标签: asp.net-mvc database pageviews

首先让我感谢所有在我的教育方面做出贡献的人,它帮助了很多,我在7个月内学到了很多东西。

当有人访问详细信息页面时,我被要求计算每次浏览量。 我更新了我的数据库以添加一个网页浏览列,但我不确定如何做其他事情。我想我应该把代码放在我的控制器上的ActionResult细节上,因为那是我想要跟踪的页面。如果这是错的,请纠正我。

 public ActionResult Details(int id, int? yearId)
        {
            var dbTest = _testRepository.Id(id);
            var year = yearId == null ? dbTest.LastYear : dbTest.Date.Single(i => i.Id == yearId);
            var vm = new DetailsVM
            {
                Test = _mapper.Map<TestVM>(year)
            };

            return View(vm);
        }

以上是我的行动结果。它的作用是从数据库中收集所有内容并将其显示在详细信息cshtml页面上。这段代码有效。如何使用列名称pageview将每个页面视图计数并登录到我的数据库。请解释您的方法,以便我可以从中学习。

修改
我查看过谷歌分析,这不是我想要的。我只想用一些东西来组织。

我还包括了我的数据库模型,希望能够提供更多信息。

public class Test
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }
        public ICollection<TestYear> Years { get; set; }
        [NotMapped]
        public TestYear LastYear {
            get {
                return this.Years.OrderByDescending(i => i.Year).FirstOrDefault();
            }
        }
        public int PageViews { get; set; }
    }

1 个答案:

答案 0 :(得分:0)

我最后只是在我的存储库中创建了一个方法,每次遇到id时都会在我的数据库中为页面视图列添加一个计数器。

public void AddView(int id)
    {
        var view = _context.Tests.Single(i => i.Id == id);
        view.PageViews++;
        _context.SaveChanges();
    }