مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

pourya.montakhab

عضویت از 1397/07/14

پیاده سازی بخش کد تخفیف در سایت

  • یکشنبه 28 بهمن 1397
  • 08:56
تشکر میکنم

سلام  دوستان .

چطوری میتونم در view مقدار درون ViewBag م رو  که از اکشن دریافت کردم به صورت jQuery تغییر بدم .

 <li class="total-price"> مبلغ قابل پرداخت : <span> @ViewBag.EndPrice تومان </span></li>

مثلا این ViewBag رو بگیرم و چند درصد ازش کم کنم و دوباره نمایشش بدم ؟

پاسخ های این پرسش

تعداد پاسخ ها : 13 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 28 بهمن 1397
  • 09:07
@{
int p = (int)ViewBag.EndPrice;
p+=10;
}
<li class="total-price"> مبلغ قابل پرداخت :@p <span>  تومان </span></li>

کاربر سایت

pourya.montakhab

عضویت از 1397/07/14

  • یکشنبه 28 بهمن 1397
  • 09:25

ممنونم استاد . اما اگه بخوام اون مقدار رو درون یه <script></script> تغییر بدم مد نظرمه .

کاربر سایت

رضا نصیری

عضویت از 1392/10/01

  • یکشنبه 28 بهمن 1397
  • 09:47
<script>
var price = @ViewBag.EndPrice;
function SetDiscount(percent){
	return (price*percent/100);
}
</script>

کاربر سایت

pourya.montakhab

عضویت از 1397/07/14

  • یکشنبه 28 بهمن 1397
  • 10:12

ممنون از شما جناب نصیری . 

یه مشکل کوچیک دگ هم دارم . این که میخام با کلیک روی لینکی در رویداد onclick  اون مقدار تکست باکس مورد نظرم رو بفرستم به تابع درون script م 

 <input type="text" class=" col-md-4 col-sm-4 col-xs-4 form-control" placeholder="کد تخفیف" name="buyCode" id="buyCode"/>
                        <a  class="btn btn-danger " onclick="CheckCode($('#buyCode').val)">تخفیف</a>

به این صورت نوشتم اما مقدار null رو میفرسته ینی در اصل مقداری اصلا نمیفرسته .

ابن کد رو هم تست کردم جواب نمیده : 

onclick="CheckCode(document.getElementById('buyCode').value

ممنون 

کاربر سایت

رضا نصیری

عضویت از 1392/10/01

  • یکشنبه 28 بهمن 1397
  • 10:25
<input type="text" class="col-md-4 col-sm-4 col-xs-4 form-control" placeholder="کد تخفیف" name="buyCode" id="buyCode"/>
<a class="btn btn-danger" onclick="CheckCode($('#buyCode').val())">تخفیف</a>

کاربر سایت

pourya.montakhab

عضویت از 1397/07/14

  • یکشنبه 28 بهمن 1397
  • 10:40

باز هم مقدار null  رو میفرسته 

کاربر سایت

رضا نصیری

عضویت از 1392/10/01

  • یکشنبه 28 بهمن 1397
  • 10:49

کد را بدون کوچکترین تغییری در فایل نمونه گذاشتم و کار کرد. نمونه ضمیمه شد.

فایل های ضمیمه

کاربر سایت

pourya.montakhab

عضویت از 1397/07/14

  • یکشنبه 28 بهمن 1397
  • 11:25

عذرخواهی میکنم . 

ببینین جناب نصیری من میخام همین مقدار درون تکست باکس رو بفرستم سمت اکشن با JQuery و اون ور بررسیش کنم ببینم مقدارش درون بانکم موجوده یانه . اما زمانی که فرستاده میشه اون سمت مقدارس Null میشه 

 <input type="text" class=" col-md-4 col-sm-4 col-xs-4 form-control" placeholder="کد تخفیف" name="buyCode" id="buyCode"/>
                        <a  class="btn btn-danger " onclick="CheckCode($('#buyCode').val())">تخفیف</a>

<script>
    function CheckCode(code) {
        $.get("/ShopCartPanel/CheckBuyCode/" + code,
            function (result) {
                if (result == 1) {
                    alert("ok");
                } else {
                    alert("No");
                }
            });

    }
    
</script>


public int CheckBuyCode(int value)
        {

            int success = 1;
            int danger = 2;
            var q = _iOrdersRepo.GetAllBuyCodes().SingleOrDefault(a => a.BuyCodeName == value);
            if (q != null)
                return success;
            return danger;
        }

متد CheckBuyCode درون کنترلرم رو که تریس میکنم مقدار ورودیش null هست 

کاربر سایت

رضا نصیری

عضویت از 1392/10/01

  • یکشنبه 28 بهمن 1397
  • 11:36
<script>
    function CheckCode(code) {
        $.get("/ShopCartPanel/CheckBuyCode?value=" + code,
            function (result) {
                if (result == 1) {
                    alert("ok");
                } else {
                    alert("No");
                }
            });
 
    }
     
</script>

این روش رو هم تست کنید.اگر جواب نداد روش پایین :

 $.ajax({
                    type: "Get",
                    url: '/Home/CheckBuyCode?value=' + code,
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (result) {
                      
                    },
                    error: function (error) {
                      
                    }
                });

کاربر سایت

pourya.montakhab

عضویت از 1397/07/14

  • یکشنبه 28 بهمن 1397
  • 11:41

بالاییه جواب داد . یه دنیا ممنون 

کاربر سایت

pourya.montakhab

عضویت از 1397/07/14

  • یکشنبه 28 بهمن 1397
  • 12:57

جنای نصیری مقدار درون ViewBag.EndPrice  م رو میتونم عوض کنم با  jquery ؟ 

ینی بعد از اینکه میزان تخفیف رو محاسبه کردم مقدار درون ViewBag.EndPrice  رو که داخلش مبلغ خرید بوده رو آپدیت کنم که همون مبلغ با احتساب تخفیف هست . 

ممنون 

کاربر سایت

رضا نصیری

عضویت از 1392/10/01

  • یکشنبه 28 بهمن 1397
  • 14:30

خب چه نیاز به jquery هست؟؟

همون داخل اکشن CheckBuyCode بعد از محاسبه تخفیف, ViewBag را تغییر بدید بهتر نست؟

کاربر سایت

pourya.montakhab

عضویت از 1397/07/14

  • یکشنبه 28 بهمن 1397
  • 21:06

فرمایش شما صحیحه اما من داخل اکشنم مقدار ViewBag  رو دسترسی ندارم . باید مقدار ViewBag رو بفرستم به اکشنم 

کدم مشکل داره  . چون کد script م که اجرا میشه مقدار result رو false در نظر میگیره 

میخوام دو تا مقدار رو بفرستم سمت اکشن یکی همون مقدار درون تکست باکس و دیگری مقدار ViewBag.EndPrice 

<section class="BuyCode">
                            <input type="text" class=" col-md-4 col-sm-4 col-xs-4 form-control" placeholder="کد تخفیف" name="buyCode" id="buyCode" />
                            <a class="btn btn-danger " onclick="CheckCode($('#buyCode').val(),@ViewBag.EndPrice)">تخفیف</a>
                        </section>


<script>
    var price =@ViewBag.EndPrice;
    function CheckCode(code,id) {
        $.get("/ShopCartPanel/CheckBuyCode?value=" + code & "?value2=" + id,
            function (result) {
                if (result == 1) {
                    var result = (price - ((price * 4) / 100));
                    $("#endPrice").html('مبلغ قابل پرداخت : ' + result + ' تومان ');
                    $("#EndPriceHidden").val(result);
                    alert($("#EndPriceHidden").val());
                    return result;
                } else {
                    alert("No");
                }
            });

    }

</script>


public int CheckBuyCode(int value,int value2)
        {
            int success = 1;
            int danger = 2;
           var q=_iOrdersRepo.GetAllBuyCodes().SingleOrDefault(a => a.BuyCodeName == value);
            if (q != null)
                return success;
            return danger;
        }


ممنونم

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)