ASP.net MVC检查所有请求的查询字符串参数

时间:2012-01-10 16:29:43

标签: asp.net-mvc

我有一个网站需要跟踪其他注册会员网站的推荐。这些合作伙伴中的每一个都可以重定向到我的网站中的任何页面,并且必须将他们的跟踪参数附加到查询字符串,例如:

http://www.somesite.com/Home/About?i=ABCDEFG&t=65DCEFC2-2B73-429C-BA23-C824BFD01844

在每个请求中,我希望站点首先检查会话中是否存储了“Introducer”对象。如果没有,则检查是否存在这些参数并保存相应的Introducer对象(如果未提供,则使用默认值)。我目前只在选定的控制器/操作中实现这个并且我手动调用代码但是希望它自动发生 - 自定义路由处理程序是否最适合这个?或者只是覆盖控制器基类中的OnActionExecuting并在此处理?

1 个答案:

答案 0 :(得分:3)

创建Action Filter

您可以访问操作过滤器中的所有路径数据,并执行您需要执行的操作。您可以在Global.asax

中将其设置为全局过滤器
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new CustomFilter());
}