使用ASP.NET MVC 3和剃刀视图进行用户跟踪

时间:2011-06-14 20:41:32

标签: asp.net-mvc-3 analytics

在ASP.NET MVC 3中使用Razor视图时,在整个网站中实施用户跟踪的最佳方法是什么。

在webforms中我会在母版页中放置一些代码来使用cookie并在我的网站上记录一个人在数据库中访问的每个网址,但我不确定在ASP.NET MVC中实现此代码的位置。

2 个答案:

答案 0 :(得分:20)

我想最好的方法是创建一个全局动作过滤器,并跟踪那里的访问。

创建操作过滤器属性:

public class UserTrackingActionFilterAttribute : ActionFilterAttribute
{
    public override void OnResultExecuting(ResultExecutingContext context)
    {
        base.OnResultExecuting(context);

        //save url, userId from session, etc...
    }
}

将其注册为全局asax中的全局过滤器:

protected void Application_Start()
{      
    // Register global filter
    GlobalFilters.Filters.Add(new UserTrackingActionFilterAttribute());

    RegisterGlobalFilters(GlobalFilters.Filters);
}

这就是全部。尼斯?

答案 1 :(得分:5)

我不会用Razor的观点做任何事情。

您需要构建ActionFilter并将其附加为GlobalFilter。让它为你完成所有的工作。

More good reading...