Я видел проблему, когда вы отправляете свои данные на контроллер:
var number = $('promoNumber').val();
и затем:
data: {number:textbox},
Что такое текстовое поле?
Вы должны ссылаться на ваш promoNumber , как это в jQuery:
var number = $('#promoNumber').val();
Вот что я бы сделал:
$(document).ready(function() {
$("#promo").click(function() {
$.ajax({
type: 'POST',
url: 'Booking/Review',
dataType: 'json',
data: { number: $("#promoNumber").val() },
success: function(data) {
if (data) {
alert(data.discount);
alert(data.totalAmount);
}
}
});
});
});
Поскольку вы используете кнопку, я бы использовал событие щелчка.
Я использую jSon в качестве возвращаемого объекта.
и это контроллер:
[HttpPost]
public ActionResult Review(int number)
{
IVoucherRepository voucherResp = new VoucherRepository();
IQueryable<Voucher> getVoucher = voucherResp.GetVouchers(number);
//first check if the code is there or not else return error
int discount = 0;
int totalAmount = 0;
foreach (var number in getVoucher)
{
discount = number.discount;//Thats the discount number
}
//after getting the discount code i need to pass that to ViewBag.TotalAmount to do calculation
return (Json(new { discount = discount, totalAmount = totalAmount }, JsonRequestBehavior.DenyGet));
}
в вашем контроллере вы можете выполнить все вычисления и затем вернуть объект json со всеми необходимыми свойствами.