Привет! Я использую Ajax Jquery для передачи промокода на контроллер,
проверить код, сделать некоторые вычисления и вернуть результат, что я хочу сделать
для замены итогового результата на странице новым результатом, ниже приведен код:
("#deduct").click(function () {
var codenumber = $('#codeText').val();
$.ajax({
type:'POST',
url: this.href,
cache: false,
data: {input:$('#codeText').val() },
success: function (result) {
alert(result.name);
},
error: function () {
alert("error");
}
});
return false;
});
<div class="totalCost">
<label><b>Amount:</b></label> <%: String.Format("{0:c}", ViewBag.TotalAmount)%> <br /></div> // Want to replace ViewBag.TotalAmount with json result
<div class="promo">
<%:Html.ActionLink("promo", "Deduct", "Booking", null, new { id = "deduct" })%><input type="text" name="" id="codeText" />
</div>
Контроллер:
[HttpPost]
public ActionResult Deduct(string input)
{
IVoucherRepository voucherResp = new VoucherRepository();
IQueryable<Voucher> getVoucher = voucherResp.GetAllVouchers();
//first check if the code is there or not else return error
if (input == "")
{
return Json(new { name = "Please Enter the Promo Code" });
}
else if (getVoucher.Any(r => r.Code == input))
{
foreach (var validCode in getVoucher)
{
if (validCode.DiscountType == 1)
{
decimal discount = Convert.ToDecimal(TempData["test"]) - validCode.Discount;
return Json(new { name = discount });
}
//" Valid Code " + " Total Discount : " + validCode.Discount + " Discount Type : (£) " + " Final Price : " +
}
return Json(new { name = "" });
}
else
{
return Json(new { name = "Invalid Code Entered" });
}
}