Параметр listaFiltrosSeleccionados не может быть правильно привязан MVC, поскольку jQuery сериализует массив объектов одним способом, а ASP.NET MVC ожидает, что это будет сериализовано другим способом.
jQuery сериализует это так: listaFiltrosSeleccionados[0][campo]=foo
ASP.NET MVC ожидает, что это будет: listaFiltrosSeleccionados[0].campo=foo
Здесь вы можете прочитать об этой проблеме в деталях. Также там вы можете найти патч jQuery, который вносит поддержку точечной нотации в сериализацию jQuery:
https://gist.github.com/migimunz/61557b7fab233604ba46
Таким образом, вы можете включить этот патч в свои скрипты и отправить данные на сервер следующим образом:
var mostrarBorrados = true;
var cantRegistros = 1;
var listaFiltrosSeleccionados = [{
campo: 'foo',
opcionSeleccionado: 'bar',
tabla: 't1',
valor1: 'v1',
valor2: 'v2'
}, {
campo: 'abc',
opcionSeleccionado: 'def',
tabla: 't2',
valor1: 'vlr1',
valor2: 'vlr2'
}];
function buttonClick() {
$.ajax({
url: '@Url.Action("GetReport", "Report")',
type: 'GET',
dataType: 'binary',
data: $.param({ controlador: "condIva", mostrarBorrados: mostrarBorrados,
listaFiltrosSeleccionados: listaFiltrosSeleccionados, cantRegistros : cantRegistros, reportType: "EXCELOPENXML" }, false, true),
success: function (response) {
var url = URL.createObjectURL(response);
var $a = $('<a />', {
'href': url,
'download': 'descarga.xlsx',
'text': "click"
}).hide().appendTo("body")[0].click();
}});
}
Тогда ваш список будет связан правильно.