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

Nic*_*wan 10 analytics asp.net-mvc-3

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

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

And*_*ich 20

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

创建操作过滤器属性:

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

        //save url, userId from session, etc...
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

    RegisterGlobalFilters(GlobalFilters.Filters);
}
Run Code Online (Sandbox Code Playgroud)

就这样.尼斯?


Cha*_*ell 5

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

您将需要构建一个ActionFilter并将其作为GlobalFilter附加.让它为你做所有的工作.

更好的阅读......

  • +1,因为您提供了阅读参考;) (2认同)