Возможно, вам не следует полагаться на QueryString для передачи данных.Я бы посоветовал вам использовать метод «POST» вместо.В любом случае, используя подход, который вы используете, вы не сможете передать данные в виде массива.Преобразуйте массив в строку.Утилита типа stringify () может пригодиться, если вы не хотите преобразовывать массив в строку вручную.Когда вы извлекаете строку из Request.QueryString или Request.Form (если вы используете post) в обработчике, вы можете легко использовать JavaScriptSerializer для десериализациииспользуя простой класс C #, который имеет схему, аналогичную вашему массиву json.
Отредактировано: Иллюстрация
Массив наподобие
var ary = [{ "id": "1", "name": "Mark" }, { "id": "2", "name": "John"}];
может быть преобразован в строку типа:
var aryS = "[{\"id\":\"1\",\"name\":\"Mark\"},{\"id\":\"1\",\"name\":\"Mark\"}]";
тогда ваша QueryString может быть сконструирована как:
jQuery.getJSON('Handlers/AccessoryUpdateHandler.ashx?action=updateselection&a=' + aryS, function (list) {
//...
});
когда вы переходите к коду вашего обработчика, вы можете иметь простой класс, который поможет вам десериализовать данные:
class Rec
{
public int Id { get; set; }
public string Name { get; set; }
}
с последним десериализацией:
string s = context.Request.QueryString["a"]; // HttpContext context
var jserializer = new JavaScriptSerializer();
var ary = jserializer.Deserialize<Rec[]>(s);
Обратите внимание, что вы должны использовать Rec [] в функции десериализации, поскольку вы десериализуете в массив. ary будет массивом Rec со всеми вашими данными из вашего массива javascript.Вам нужно сослаться на System.Web.Extensions, чтобы использовать JavaScriptSerializer
EDIT:
Я думал, что вы говорите о массиве объектов.Если это просто массив длиной * * с, то должно быть достаточно следующих строк:
string s = context.Request.QueryString["a"]; // HttpContext context
var jserializer = new JavaScriptSerializer();
var ary = jserializer.Deserialize<long[]>(s);
и вам не нужно создавать класс.это понадобится вам, только если у вас есть массив объектов json