Отправить данные поста на страницу asp.net от классического asp - PullRequest
2 голосов
/ 08 марта 2011

Цель состоит в том, чтобы вытащить страницу asp.net из классического asp с использованием данных публикации, однако страница asp.net всегда имеет переменные Request.Form как пустые и показывает RequestType get.

  1. Я удалил весь код из asp, проверил получение переменных формы, отправленных со страницы html на странице asp.net, и это прекрасно работает. Копирование той же html формы на страницу asp по-прежнему не дает данных request.form и RequestType get

    <html>
    <head></head>
    <body>
        <form method="post" name="form" action="http://localhost:51307">
            <input name="uid" value="1" />
            <input type="submit" name="Submit" />
        </form>
    </body>
    

Сайт asp использует фреймы, а форма отправляется из дочернего фрейма, я не уверен, что это проблема.

2. Предполагая, что это сработало, я подумал отправить форму в asp и использовать событие onsubmit формы, чтобы открыть страницу, которая отправит переменные формы в виде данных поста. Это лучший способ сделать это?

* ** 1015 1016 * UPDATE Кажется, что здесь как-то виноваты фреймы, я отправил из формы в рамке страницы на другую классическую страницу asp, а затем перенаправил с этой страницы на страницу asp.net.

Ответы [ 3 ]

2 голосов
/ 11 марта 2011

Вероятно, это произошло из-за того, что "навигация по окнам и фреймам в разных доменах" по умолчанию отключена в браузерах IE, что означает, что вы не можете передавать данные формы по соображениям безопасности.

0 голосов
/ 08 марта 2011

Проблема с перенаправлением. Когда вы перенаправляете страницу, она создает запрос GET вместо запроса POST и поэтому не будет иметь никаких данных формы.

Ваши варианты:

  1. Добавить значения формы в строку запроса.
  2. Динамически сгенерируйте форму, соответствующую опубликованной коллекции Request.Form, и отправьте ее на страницу ASP.NET с помощью Javascript во время события body onload.
0 голосов
/ 08 марта 2011

ASP.NET требует, чтобы определенные поля формы были установлены (обычно как скрытые поля, хотя HTTP POST, очевидно, не знает разницы), чтобы входящий запрос обрабатывался как действительный, заполняя тем самым соответствующие переменные.

Если я помню, вам нужно установить __EVENTTARGET, __EVENTARGUMENT и __VIEWSTATE.

Затем ваш код ASP.NET должен иметь возможность обрабатывать то, что было отправлено, так как обработчики по умолчанию ожидают, что что-то будет в __VIEWSTATE как минимум.Итак, вам нужно переопределить обработчик ViewState на вашей странице.Позже я смогу получить дополнительную информацию, когда буду на работе, поскольку знаю, что делал это раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...