So getting the objects I need in JS, I did:
$('.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
});
}
});
If I console.log
vmopl
in the end, I'll get something like
[Object { id="2", name="Card", inUse="True", ammount="500"},
Object { id="1", name="Cash", inUse="True", ammount="250"}]
Now if I try to send this to AJAX this up using
$.get('/reports/savebill/' + methodOfPayment + '?vmop=' + JSON.stringify(vmopl), function (data) {
if (data == 'True') {
location.href = '/order/neworder/';
} else {
alert("Unsuccessful!");
}
});
A controller action Should pick vmop
up, the controller looks like so:
public bool SaveBill(int id, ViewMethodOfPayment[] vmop) {
//lots of code...
}
But when I put a breakpoint, I always see vmop
as null, even when I pass it to another object (var temp = vmop;
).
ViewMethodOfPayment
is a simple model class:
public class ViewMethodOfPayment
{
public long Id { get; set; }
public string Name { get; set; }
public bool InUse { get; set; }
public double Ammount { get; set; }
}
If I missed any info, or if it's unclear what I want to do/expect, please leave a comment, I'll answer as soon as I can!
Thanks for reading!
edit: changed the first block of code (line: 9, because I included a code that will bring a JavaScript error)
ViewMethodOfPayment[] vmop
try puttingList<ViewMethodOfPayment> vmop
model
likeid
should beId
.. Try once..