ASP.net MVC проверяет параметр строки запроса на все запросы - PullRequest
3 голосов
/ 10 января 2012

У меня есть сайт, на котором нужно отслеживать рефералов с других зарегистрированных партнерских сайтов. Каждый из этих партнеров может перенаправить на любую страницу моего сайта и должен добавить свои параметры отслеживания в строку запроса, например:

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

При каждом запросе я хочу, чтобы сайт сначала проверял, сохранен ли в сеансе объект «Представитель». Если нет, то проверьте наличие этих параметров и сохраните соответствующий объект Introducer (или используйте значение по умолчанию, если они не предоставлены). У меня в настоящее время это реализовано только в отдельных контроллерах / действиях, и я вызываю код вручную, однако хотел бы, чтобы это происходило автоматически - лучше ли будет для этого использовать собственный обработчик маршрута? или просто переопределить OnActionExecuting в базовом классе контроллера и обработать здесь?

1 Ответ

3 голосов
/ 10 января 2012

Создать Фильтр действий .

Вы можете получить доступ ко всем данным маршрута в фильтре действий и делать там все, что вам нужно. Вы можете настроить его как глобальный фильтр в вашем Global.asax:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new CustomFilter());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...