#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
, которое (если ваш контроллер или метод украшен им) пересекало бы ваш первоначальный запрос, выполняло всю необходимую обработку, а затем перенаправляло обратно на запрошенную страницу, только указывая, что обработка была выполнена?
Это было бы моей первой мыслью.