У меня есть сайт, на который ссылаются внешние сайты с идентификатором кампании
http://www.example.com? Cid = 123
или (с косой чертой)
http://www.example.com/?cid=123
В случае, если вы пропустите слеш, большинство браузеров добавят его для вас. Таким образом, в любом случае, какой бы адрес вы ни указали, мое приложение попало на второй адрес выше. Параметр QueryString всегда доступен.
Я заметил, что с маршрутизацией ASP.NET MVC (может быть, даже без), когда я использую виртуальный каталог, я не получаю такое же поведение.
Например, если у меня есть 'http://www.example.com/virtualdirectory?cid=123'
, это достигнет моей страницы 'default.aspx
' (так как она не соответствует ни одному маршруту). НО, когда я проверяю значение Request.QueryString
, оно пустое. Если перейти к 'http://www.example.com/virtualdirectory?cid=123'
, тогда в объекте Request
присутствует значение QueryString
.
Если я добавлю точку останова в Default.aspx.cs
во вновь созданном проекте MVC (окончательная версия MVC 1.0 - март 2009 г.), тогда я не увижу параметры запроса.
Мне было интересно, есть ли какой-нибудь способ получить доступ к этим параметрам в IIS6 и / или IIS7, если пользователь обращается к виртуальному каталогу с помощью URL-адреса, например /virtualdirectory?cid=123
.
Возможно, не будет никакого решения, но я просто рад, что заметил это, прежде чем связать каких-либо партнеров в виртуальный каталог!