какой тип массивов / объектов javascript использовать? - PullRequest
0 голосов
/ 10 января 2012

На моей странице ASP.NET я хочу вернуть некоторые данные из клиентской формы, которые предпочтительно хранить в виде объекта словаря.Теперь я не очень уверен, какой тип объекта использовать в моей функции JavaScript, который когда-то вызывался из кода на сервере (через Request.Cookies / любым другим предложенным альтернативным способом ),затем использовать в качестве объекта словаря .NET?

В настоящее время я сохраняю данные в виде специально отформатированной строки, а затем на сервере делю их на массивы, чтобы использовать их.Итак, я просто хочу узнать лучше и, конечно, более аккуратный способ сделать это?

1 Ответ

0 голосов
/ 11 января 2012

Вы можете использовать json для передачи данных - он отлично работает в Javascript и поддерживается в .Net 4.0.

Сначала сохраните данные в объекте javascript и зафиксируйте их:

var data = {}
data.name = "Joe";
data.age = 17;

// ... whatever else you do ...

// convert to string
var jsonString = JSON.stringify(data);

// ... put in cookie, or use ajax, or use something else to give it to .Net

Затем на стороне .Net вы можете использовать System.Web.Script.Serialization.JavaScriptSerializer для преобразования json в словарь:

String jsonString = HoweverYouGetIt();
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
Dictionary<string,object> data = serializer.DeserializeObject(jsonString) as Dictionary<string,object>;
//you can now use (int)data["name"] 

JavaScriptSerializer можно найти в сборке System.Web.Extensions, которая есть только в .NET 4.0, но этот вопрос имеет другие альтернативы.

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

И, как всегда, обязательно очистите все входные данные!

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