Я переписывание приложений ASP.NET и заметил разницу в поведении ...Запрос паров без вести POST
В моем случае Page_Load У меня есть некоторый код, такие как:
string id = Request["id"]
который получает URL-адрес id из URL-адреса. При загрузке страницы (например, HTTP GET) это работает как ожидалось в обеих версиях. У меня также есть кнопка onclick обработчик событий. Очевидно, что он выполняет POST на сервере, а также вызывает обработчик Page_Load. Разница в том, что в исходной версии приложения идентификатор успешно загружен из запроса. В новой версии приложения id возвращается как null. Я обнаружил, что мне нужно использовать Request.Params ["id"], но я совершенно озадачен тем, почему Request ["id"] работает для запросов POST в одном приложении, но не в другом.
Единственная разница между приложениями в том, что первая была создана как «Файл» -> «Новый сайт», а второй «Файл» -> «Новое веб-приложение». Я думаю, что это то, что вызывает разницу в поведении, но я задаюсь вопросом, почему это тонкое различие, а также если есть что-то еще, о чем я должен знать между 2.
Любые советы, которые очень ценятся.
Хорошо, у меня есть еще кое-какую информацию. Я заметил, что на самом деле Request ['id'] возвращает параметр дважды. Вот почему ... Я использую HttpModule для выполнения перенаправления URL-адресов.Часть этого кода делает следующее: 'если (context.Request.QueryString.Count> 0) { если (sendToUrl.IndexOf() = -1 '?!) sendToUrl + = "&" + контекст .Request.QueryString.ToString(); еще sendToUrl + = "?" + context.Request.QueryString.ToString(); } ' –
[продолжение] Это добавление URL Парама дважды. Это не происходило в оригинальной версии приложения. Я могу исправить это, проверив Request.RequestType. Но остается вопрос - почему разница в поведении ?! –