因此讓我需要JS的對象,我所做的:通過AJAX發送對象的數組 - ASP.NET MVC
$('.combine-payment-input').each(function (index, value) {
if (parseFloat(value.value) > 0) {
if (methodOfPayment == -1) {
methodOfPayment = value.dataset.method;
}
else {
methodOfPayment = 0;
}
vmopl.push({
id: value.dataset.method,
name: $('label[for="' + value.id + '"]').html(),
inUse: 'True',
ammount: value.value
});
}
});
如果我console.log
vmopl
到底,我就會得到這樣
[Object { id="2", name="Card", inUse="True", ammount="500"},
Object { id="1", name="Cash", inUse="True", ammount="250"}]
現在,如果我嘗試發送這AJAX這個了使用
$.get('/reports/savebill/' + methodOfPayment + '?vmop=' + JSON.stringify(vmopl), function (data) {
if (data == 'True') {
location.href = '/order/neworder/';
} else {
alert("Unsuccessful!");
}
});
控制器動作應該挑vmop
時,控制器看起來像這樣:
public bool SaveBill(int id, ViewMethodOfPayment[] vmop) {
//lots of code...
}
但是,當我把一個斷點,我總是看到vmop
爲空,甚至當我把它傳遞到另一個對象(var temp = vmop;
)。
ViewMethodOfPayment
是一個簡單的模型類:
public class ViewMethodOfPayment
{
public long Id { get; set; }
public string Name { get; set; }
public bool InUse { get; set; }
public double Ammount { get; set; }
}
如果我錯過了任何信息,或者如果它是不清楚我想做/期望的,請留言,我會盡快我可以回答!
感謝您的閱讀!
編輯:改變的代碼的第一個塊(行:9,因爲我包括一個代碼,將帶來一個JavaScript錯誤)
這將是很容易的,如果你只是序列化形式! –
那麼如果你發送** POST **方法的數據呢:) –
而不是'ViewMethodOfPayment [] vmop'嘗試放置'List vmop' –