Передача данных на серверную часть из кода Javascript - PullRequest
0 голосов
/ 11 марта 2012

Я пытаюсь отправить данные с клиентской стороны на серверную (asp.net c #), , если вы действительно хотите знать, я хочу отправить window.name свойство .

Сначала я подумал о том, чтобы иметь asp:HiddenField, и на событии OnSubmit какой-то JS записал значение в скрытое поле. Единственная проблема заключается в том, что я могу получить доступ к скрытому значению поля (согласно this ) только от события PreLoad до события PreRenderComplete. В проекте, над которым я работаю, много кода в событии OnInit, и, к сожалению, я не могу его переместить, и мне нужно использовать значение window.name здесь.

Другие идеи, которые у меня есть, - добавить пользовательский заголовок HTTP windowId или на событие OnSubmit иметь JS, который добавляет параметр к document.location.href.

Мне удалось написать в заголовок из JS с XMLHttpRequest setRequestHeader, но, возможно, я сделал что-то не так в своей реализации , это генерирует 2 запроса, первый нормальный, ожидаемый (щелчок по кнопке / ссылке ...), а второй из XMLHttpRequest. Я считаю это поведение очень неестественным. У вас есть предложения? ( см. Фрагмент кода ниже ). Я не знаю, что использовать AJAX.

    var oReq = new window.XMLHttpRequest;
    oReq.open('POST', document.location, false);
    oReq.setRequestHeader("windowId", window.name);
    oReq.send(null);

Для идеи OnSubmit я не потратил на это много времени, но я думаю, что мне нужно добавить символ #, прежде чем я добавлю свой параметр windowId с его значением, чтобы страница не ' т перезагрузить. Я могу ошибаться по этому поводу. В любом случае, я должен удалить это из URL после того, как я получу значение, чтобы пользователь не увидел неприятный URL. У вас есть предложения?

Хорошо, так что вы думаете?

Спасибо, что прочитали все мои болтовни, и заранее благодарю за ответы.

1 Ответ

1 голос
/ 11 марта 2012

Я бы порекомендовал <asp:HiddenField /> (например, <asp:HiddenField ID="hfWindowName" runat="server" />. В OnInit вы все равно можете получить доступ к его значению, используя Request.Form:

string windowName = Request.Form(hfWindowName.UniqueID);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...