У меня есть объект в моем JavaScript с массивом объектов внутри него. Я хочу отправить его на мой контроллер через вызов ajax. Но мой список никогда не заполняется в моем контроллере.
Я делаю свой объект machineList следующим образом:
var machineList = JSON.stringify({ 'machineList': objects.machines });
Console.log этого объекта
{"machineList":[{"Id":1,"Labour":"Hard","EnlistedMachine":"BEXTE","Type":"dz","Identifier":"ddd","IdentifierCode":"ddd"},{"Id":2,"Labour":"Easy","EnlistedMachine":"BEXTEss","Type":"dz","Identifier":null,"IdentifierCode":null}]}
Мой объект данных, который отправляется, выглядит следующим образом
var data = {
SalesPrice: $("#SalesPrice").val(),
machineList: machineList
};
Ajax call:
$.ajax({
url: currenturl + "/MyXmlAction",
data: data,
dataType: "json",
type: "GET",
contentType: 'application/json; charset=utf-8', //define a contentType of your request
cache: false,
success: function (type) {
// data is your result from controller
if (type.success) {
XML = type.json;
}
},
error: function (xhr) {
alert('error');
}
});
Моя модель выглядит так:
public class ContractViewModel
{
public string SalesPrice { get; set; }
List<MachineListDto> machineList = new List<MachineListDto>();
}
Мой метод контроллера выглядит так:
public ActionResult MyXmlAction(ContractViewModel data)
{
//Code
return Json(new { success = true, data }, JsonRequestBehavior.AllowGet);
}
MachineListDto
public class MachineListDto
{
public int Id { get; set; }
public string EnlistedMachine { get; set; }
public string Type { get; set; }
public string Labour { get; set; }
public string Identifier { get; set; }
public string IdentifierCode { get; set; }
}
}
Объект данных после внесенных изменений Tetsuya
{"SalesPrice":"1000","machineList":[{"Id":1,"Labour":"Hard","EnlistedMachine":"BEXTE","Type":"dz","Identifier":"ddd","IdentifierCode":"ddd"},{"Id":2,"Labour":"Easy","EnlistedMachine":"BEXTEss","Type":"dz","Identifier":null,"IdentifierCode":null}]}
Я пытался сделать то же самое, что видел в следующем посте:
Передача ListObject в контроллер