大家晚上好。我目前正在使用MVC 3,并且我有一个视图模型,它包含一个List属性。我目前正在使用json2的JSON.stringify方法将我的视图模型传递给我的操作方法。在调试时,我注意到所有简单的属性都通过了,但collection属性是空的,尽管我确信集合中至少有一个对象。我想知道是否有人遇到了同样的问题。以下是我用来发布到操作方法的代码:
$.post("/ReservationWizard/AddVehicleToReservation/",
JSON.stringify( @ViewData["modelAsJSON"] ),
function (data) {
if (data != null) {
$("#vehicle-selection-container").html(data);
$(".reservation-wizard-step").fadeIn();
}
});
The object @ViewData["modelAsJSON"]
contains the following json and is passed to my action method
{"NumberOfVehicles":1,"VehiclesToService":[{"VehicleMakeId":0,"VehicleModelId":0}]}
正如您所看到的,属性“VehiclesToService”有一个对象,但当它到达我的操作方法时,它不会被转换为集合中的相应对象,而是集合是空的。
如果有人对这个问题有任何见解,我们将不胜感激。
提前谢谢。
UPDATE
OK after making the recommended changes and making the call to new JavaScriptSerializer().Serialize(@Model)
this is the string that ultimately gets sent to my action method through the post
{"NumberOfVehicles":1,"VehiclesToService":[{"VehicleMakeId":0,"VehicleModelId":0}]}
我可以调试并查看发送到我的操作方法的对象,但集合属性也是空的,我确信集合中至少有一个对象。
The AddVehicleToReservation action method is declared as follows:
public ActionResult AddVehicleToReservation(VehicleSelection selections)
{
...
return PartialView("viewName", model);
}