Как передать двухмерный массив JavaScript в контроллер в asp mvc с помощью ajax? - PullRequest
1 голос
/ 16 мая 2019

Я работаю над веб-страницей, где пользователь создает свои матрицы, вставляет двойные числа в каждую ячейку, вводит уравнение и нажимает кнопку «Рассчитать», чтобы получить результат. Проблема возникает, когда я пытаюсь отправить матрицы на контроллер с помощью ajax.

Тип словаря

Dictionary<char, double[,]> matrices

Словарь Javascript

Инициализация словаря:

var matricesDictionary = {};

Инициализация двумерного массива:

 var matrixContent = new Array(matrix.width);
    for (var c = 0; c < matrix.width; c++)
        matrixContent[c] = new Array(matrix.height);

Заполнение двумерного массива:

$('#' + matrix.name + " input").each(function () {
        var values = $(this).attr('id').split('-');
        var line = values[0];
        var column = values[1];
        matrixContent[line][column] = parseFloat($(this).val());
    });

Добавление нового элемента в словарь:

matricesDictionary[matrix.name] = matrixContent;

Содержимое матрицы «а» 12x12

Содержимое словаря матриц

Ajax Request

$.ajax({
        url: '/Matrix/Matrix',
        type: "POST",
        data: { matrices: matricesDictionary, exp: exp },
    });

Параметры контроллера

public IActionResult Matrix(Dictionary<char, double[,]> matrices, string exp)

Запрос получен контроллером, переменная "exp" имеет правильные значения, а в словаре есть ключи, но их содержимое равно нулю.

Исключение NullReferenceException

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