नमस्ते, मैं नियंत्रक को प्रचार कोड पास करने, कोड की जांच करने, कुछ गणना करने और परिणाम वापस करने के लिए अजाक्स 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" });
        }

    }
0
Mr A 9 अगस्त 2011, 17:32
आप TempData["test"] को कहां और किस पर सेट करते हैं?
 – 
Tomas Aschan
9 अगस्त 2011, 17:58
अच्छी तरह से मैं दृश्य में परिणाम के साथ ViewBag.TotalAmount को बदलना चाहता हूं
 – 
Mr A
9 अगस्त 2011, 18:03
TempData ["परीक्षण"] किसी अन्य क्रिया विधि से आ रहा है और इसका मान दशमलव में है
 – 
Mr A
9 अगस्त 2011, 18:03
मैंने बिना किसी सफलता के ऐसा कुछ करने की कोशिश की: सफलता: फ़ंक्शन (परिणाम) {अलर्ट (result.name); वर कुल राशि = $ (परिणाम); $('.totalcost').append(totalmount); },
 – 
Mr A
9 अगस्त 2011, 18:04

1 उत्तर

सबसे बढ़िया उत्तर

मिस्टर ए,

काम करने के लिए आपको अपनी राशि फ़ील्ड को एक आईडी देनी होगी। निम्नलिखित की तर्ज पर कुछ काम कर सकता है:

<div class="totalCost">
  <label><b>Amount:</b></label><p id="newTotal"><!--existing stuff--></p> <br />
</div>

(यदि आप <p> का उपयोग करते हैं तो आपको शायद ऊपर दिए गए <br /> की भी आवश्यकता नहीं होगी)

और आपके jQuery कोड में:

success: function (result) {
        $('#newTotal').val(result.name);
}

वह पहली चीज होगी जो मैं कोशिश करूंगा।

0
jim tollan 9 अगस्त 2011, 18:13
Thnx jim dat ने पूरे मुद्दे को हल नहीं किया, लेकिन मुझे दिशा की ओर ले जाता है .. :)
 – 
Mr A
9 अगस्त 2011, 18:38