2009-11-17 2 views
2

Мне нужно передать данные javascript на серверную сторону после обратной связи.Отправить переменные javascript на серверный ASP .NET

Ex
var jsVariableToPass = new Object();
jsVariableToPass ['key1'] = value1;
jsVariableToPass ['key2'] = value2;
jsVariableToPass ['key3'] = value3;

Я хотел бы, чтобы это было доступно как Hashtable на стороне сервера. Какой был бы лучший способ сделать это?

Единственные сообщения, которые я видел, используют скрытый ввод. Это кажется мне немного взломанным, и мне было интересно, есть ли еще один приемлемый способ сделать это. Кроме того, если это единственный способ, какой был бы лучший способ десериализации и сериализации этого?

ответ

2

Я думаю, ваш собственный комментарий ответил на ваш вопрос.

Вы хотите, чтобы значения передавались по обратной передаче.

Единственный способ общения с браузером и сервером - либо получить запрос на получение запроса, либо отправить запрос по протоколу http.

Как вы сказали, вы только хотите, чтобы значения передавались после сообщения, тогда вы можете сохранить хеш-таблицу в скрытом вводе и отправке, или вы можете имитировать сообщение назад с помощью YUI, как отметил в своем ответе @Zoidberg.

Я не вижу ни скрытого ввода, ни использования YUI или другой библиотеки JS, чтобы имитировать пост назад как менее хакерский или более хакерский.

В обоих подходах основная идея состоит в том, чтобы связаться с сервером, и это два разных способа создания запроса, который может быть отправлен через браузер на сервер.

и ответить на ваш другой вопрос о лучший способ сериализации и десериализации

Я рекомендовал бы преобразовать ваши данные в JavaScript JSON строки в соответствии с настоящим example и передать на сервер и использование litjson для преобразования данных JSON в .net объекты.

1

Поскольку вы используете AJAX, вы можете сделать это менее методом Hackey. Я не уверен, что Ajax библиотеки вы используете, но YUI обеспечивает дополнительный параметр по их методу запроса ASYNC

var postData = YAHOO.util.Connect.setForm(this.formValidator.form); // gets the data in the form 
postData += 'var1=value1&var2=value2'; // appends your new data 
YAHOO.util.Connect.asyncRequest(method, action, scope,postData); // sends the post 

ПРИМЕЧАНИЕ: Область должна быть функция называется успех в ней, чтобы получить ответ.

+0

Я использую Ajax в своем проекте. Тем не менее, я хочу, чтобы значения передавались по обратной передаче. – helios456

1

Вот пример написания парсера JSON, который может читать непосредственно к Hashtable:

http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html

Вы можете легко просто сериализовать объект JSON и добавить его в качестве точки привязки POST (либо с скрытый или используемый jQuery или аналогичный).

+0

Запрос позволяет получить доступ к переменным запроса, таким как хеш-таблица в настоящее время, делает это менее «хакерским» решением? – Zoidberg

+0

Как я буду читать и писать POST-данные? – helios456