在ASP.NET MVC 3中使用Razor视图时,在整个网站中实施用户跟踪的最佳方法是什么。
在webforms中我会在母版页中放置一些代码来使用cookie并在我的网站上记录一个人在数据库中访问的每个网址,但我不确定在ASP.NET MVC中实现此代码的位置。
答案 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)