Вам нужны квадратные скобки, если вы хотите иметь дело с массивами. В javascript действительно есть два артефакта: объекты ({}
) и массивы объектов ([]
), и различие действительно важно:
var guest = { };
var guests = [ ];
for(var i = 0; i < 2; i++) {
var name = GetName();
var email = GetEmail();
guest = { 'Email': email, 'Name': name };
guests.push(guest);
}
Теперь, когда мы исправили ваш javascript, давайте использовать AJAX для отправки этого массива guests
в действие контроллера AddGuests
:
$.ajax({
url: '/SomeController/AddGuests',
data: JSON.stringify(guests),
type: 'POST',
contentType: 'application/json', // <-- Make sure to set the proper content type
success: function(result) {
// TODO: handle the results of the controller action
}
});
Показанный здесь метод JSON.stringify
реализован в большинстве современных браузеров, но для более старых браузеров вы можете захотеть включить следующий скрипт .
Последнее замечание:
Никогда не кодируйте URL в коде JavaScript, как это:
url: '/SomeController/AddGuests'
Всегда используйте помощники Url в ASP.NET MVC при работе с URL, например:
url: '@Url.Action("AddGuests", "SomeController")'