大家晚上好。我目前使用MVC 3,我有一个viewmodel包含属性是一个列表。我目前使用json2的JSON.stringify方法将我的viewmodel传递给我的操作方法。在调试过程中,我注意到所有简单的属性都经过了,但是集合属性是空的,即使我知道集合中至少有一个对象。我想知道是否有人遇到同样的问题。下面是代码,我使用后的操作方法:asp.net mvc 3 ViewModel收藏属性,以json不工作
$.post("/ReservationWizard/AddVehicleToReservation/",
JSON.stringify('@ViewData["modelAsJSON"]'),
function (data) {
if (data != null) {
$("#vehicle-selection-container").html(data);
$(".reservation-wizard-step").fadeIn();
}
});
对象@ViewData["modelAsJSON"]
包含以下JSON和传递到我的操作方法 {"NumberOfVehicles":1,"VehiclesToService":[{"VehicleMakeId":0,"VehicleModelId":0}]}
正如你所看到的财产“VehiclesToService “有一个对象,但是当它到达我的操作方法时,它不会被转换为集合中的对应对象,而是集合是空的。
如果有人对此问题有任何了解,将不胜感激。
在此先感谢。
UPDATE作出修改建议,使调用new JavaScriptSerializer().Serialize(@Model)
此之后
确定的是,最终得到通过邮局发送到我的行动方法的字符串 '{"NumberOfVehicles":1,"VehiclesToService":[{"VehicleMakeId":0,"VehicleModelId":0}]}'
我可以调试,看到了发送到我的操作方法的对象,但同样的收集属性是空的,我知道集合中至少有一个对象。
的AddVehicleToReservation动作方法的声明如下: public ActionResult AddVehicleToReservation(VehicleSelection selections) { ... return PartialView("viewName", model); }
'AddVehicleToReservation`方法是怎么样的? – 2011-02-13 20:29:08