似乎找不到解决此问题的方法
我在 a html标记的 onclick 事件中有以下代码:
AddVacationToCart(
{
ServiceSupplier:'Kiki',
ProductId:'0;11968;0;0;187;1',
Name:'Excelsior',
NumberOfStars:'*****',
TotalPrice:'1620.00',
PriceLevelName:'Standard',
Currency:'EUR',
Status:'',
StartDate:'2010-06-17',
EndDate:'2010-06-24',
NumberOfNights:'7',
Rooms:[
{
NumberOfAdults:'2',
NumberOfChildren:'0',
ChildrenAges:[]
}
]
},'0;11968;0;0;187;1');return false;
我也有这段代码:
function AddVacationToCart(vacation, id) {
$.post("/ShoppingCart.mvc/AddVacation",
vacation,
function(data) {
var div = $("div[id*=cartv" + id + "]");
var removeFromCartHtml = "Adaugat";
$(div).html(removeFromCartHtml);
}, "json");
}
这是我的ShoppingCartController AddVacation操作中的代码:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult AddVacation(Vacation test)
{
...
}
帖子的工作方式与(假期)测试对象一样,填充了相应的属性,如ServiceSupplier,ProductId,Name等。除了我的房间字段的属性外,没有得到相应的值。 任何想法?
答案 0 :(得分:0)
我发现从1.4开始,JQuery的ajax函数就像地狱一样。我的脚本在每个平台上的每个浏览器中都能正常运行,但Linux上的Chrome除外。我已经提交了相关的错误报告,到目前为止没有收到回复。
答案 1 :(得分:0)
房间是一个数组,因此您必须将道具命名为linke Rooms [0] .NumberOfAdults,Rooms [1] .NumberOfAdults以使默认模型绑定器按预期工作。
答案 2 :(得分:0)
您的代码应该是这样的:
AddVacationToCart(
{
ServiceSupplier:'Kiki',
ProductId:'0;11968;0;0;187;1',
Name:'Excelsior',
NumberOfStars:'*****',
TotalPrice:'1620.00',
PriceLevelName:'Standard',
Currency:'EUR',
Status:'',
StartDate:'2010-06-17',
EndDate:'2010-06-24',
NumberOfNights:'7',
'Rooms[0].NumberOfAdults' :'2',
'Rooms[0].NumberOfChildren':'0',
'Rooms[0].ChildrenAges[0]': '18'
},'0;11968;0;0;187;1');return false;
由于ASP.NET MVC绑定规则。试试吧