Я пытаюсь использовать функцию jquery ajax для отправки в действие контроллера MVC2, но мои параметры включают в себя массив (простого) пользовательского класса, и действие не получает данные правильно.
Клиент:
var element1 = { FirstName: 'Raymond', LastName: 'Burr' };
var element2 = { FirstName: 'Johnny', LastName: 'Five' };
var var2 = [element1, element2];
var var1 = 'some string';
var parms = {
var1: var1,
var2: var2
};
var ajaxArgs = {
type: "POST",
traditional: true,
url: "/Home/Test1",
data: parms,
dataType: "json",
success: returnSuccess,
error: returnError
};
$.ajax(ajaxArgs);
Сервер:
[HttpPost]
public ActionResult Test1(string var1, List<TestParameterClass> var2) { ... }
public class TestParameterClass
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
2 случая, которые уже работают:
1) Использование List <_string> в качестве параметра действия и изменение массива javascript на строку
массив.
2) Использование TestParameterClass в качестве параметра действия и передача 1 экземпляра пользовательского класса.
Таким образом, реальный трюк, по-видимому, заключается в получении массива пользовательского класса, успешно переданного и с другими плоскими (строковыми) параметрами.
Есть идеи, как сделать эту работу? Также есть ли документация о том, как MVC2 переводит параметр в некоторый тип C # (я использовал List <> только b / c, он кажется наиболее широко используемым)?
Спасибо!