ASP.NET — Razor. Переписать URL на лету

#asp.net #url-rewriting #razor

#asp.net #url-перезапись #razor

Вопрос:

Возможно ли переписать URL «на лету», только когда часть серверного кода уже обработана для «сырого» URL-адреса и становится ясно, что параметры не должны раскрываться пользователю? Например, я хочу обработать все параметры GET в коде моей страницы на сервере и создать запись отслеживания в базе данных, затем предоставить пользователю страницу, но изменить URL на без параметров в браузере.

Я предполагаю, что все методы модуля, на которые ссылается web.config, не будут работать, поскольку они предлагают перезапись URL до передачи запроса в код страницы на сервере. Но в моем случае я получаю уродливый URL-адрес от кликов в Google adwords, и мне нравится, чтобы он отслеживался «как есть» в моей базе данных, и мне определенно не нравится, когда он отображается пользователю в панели браузера.

В то же время я хотел бы сохранить URL без изменений, не применяя большую часть времени перезапись URL, если в нем не отображается какой-либо конкретный параметр (например, ref= adwords), чтобы любой параметр, написанный от руки или отправленный обратно, отображался в адресной строке.

Возможно ли это сделать каким-либо образом?

Ответ №1:

Рассматривали ли вы возможность написания ActionFilter , которое (если ваш контроллер или метод украшен им) пересекало бы ваш первоначальный запрос, выполняло всю необходимую обработку, а затем перенаправляло обратно на запрошенную страницу, только указывая, что обработка была выполнена?

Это было бы моей первой мыслью.