Контроллеру ASP.NET MVC 3 не удалось получить 2D-массив json - PullRequest
0 голосов
/ 15 ноября 2011

Не уверен, если это ошибка или нет. Я следовал некоторому руководству по публикации 2D-массива Json на контроллере ASP.NET MVC, и он отлично работает, когда первый элемент массива не пустой, в противном случае происходит сбой.

Пример: если мой json obj равен

var obj = {
   ItemsArr: [[1, 2],[]]   // first element is an array with a few elements
};

Контроллер получит данные правильно. Однако, если первый элемент 2D-массива является пустым массивом, например:

var obj = {
    ItemsArr: [[], [1, 2]]  // first element is an EMPTY array
};

контроллер получит ноль.

Я использую jquery.json-2.3.min.js для преобразования objs в строки json. Преобразованные строки выглядят хорошо:

{"ItemsArr":[[1,2],[]]}
{"ItemsArr":[[],[1,2]]}

Код модели:

public class Model
{
    public List<string[]> ItemsArr {get;set;}
}

public MyController : Controller
{
    public ActionResult DoSomething( Model model )
    {  ...
    }
}

Кто-нибудь встречался с этой проблемой? Любая идея, чтобы решить это?

Заранее спасибо!

===================================

Edit:

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

{"ItemsArr":[null,[1,2]]}

1 Ответ

0 голосов
/ 15 ноября 2011

Я бы предложил передать массив объектов и создать класс со свойствами Same на стороне сервера, asp.net MVC затем автоматически преобразует этот массив (на стороне JS) в список (или любой другой IEnumerable), который является частью подписи действия.

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