2013-04-07 2 views
1

Как я могу отправить массив на контроллер? я попытался так:Отправить массив контроллеру

window.location.href = "/SomeController/SomeMethod?fields=" + SomeArray; 

и так:

window.location.href = "/SomeController/SomeMethod?fields[][]=" + SomeArray; 

В контроллере я получаю так:

public ActionResult SomeMethod(int[][] fields) // here fields = null; 
{ 
// Some code 
} 

ответ

0

Используйте JQuery ajax method.

Преобразуйте объект js SomeArray в Json и передайте его обратно контроллеру в свойство данных метода ajax. Ниже я использую JSON.stringify, для которого поддерживаются современные браузеры, но вы можете включить скрипт json2 для поддержки старых браузеров.

   $.ajax({ 
        url: '/SomeController/SomeMethod', 
        type: 'POST', 
        data: JSON.stringify(SomeArray), 
        dataType: 'json', 
        contentType: 'application/json; charset=utf-8', 
        success: function (result) { 
         alert("Success"); 
        }, 
        error: function (xhr) { 
         alert(xhr.statusText + " Internal server error") 
        } 
       }) 
+0

Ошибка: Внутренняя ошибка службы – user2204438

+0

Debug сервер, чтобы узнать, что ошибка. Вызывается вызов вашего контроллера? –

0

Если вы используете JQuery, попробуйте jQuery.param

var data ={ 

    fields :[ 
     [ 
      'car', 
      'bike' 
     ] 
    ] 
}; 

window.location.href = 'SomeController/SomeMethod?' 
         + decodeURIComponent($.param(data)); 
+0

поля имеют 100 параметров - это не практично. – user2204438

+0

@ user2204438 Вы могли бы показать какой-то образец 'SomeArray' содержит? поэтому мы можем дать более конкретный ответ! – rab

+0

SomeArray [10] [10] имеет переменные int (0 или 1 или 2 или 3), это все – user2204438

Смежные вопросы