سلام
من یک فانکشن به این صورت دارم
<script> $(function () { $('#Phase_id').on('change', function () { var z = 6; var y = 4; var t = $('#Phase_id').val(); $.ajax({ type: 'POST', url: ' @Url.Action("Home", "Phase")', data: { third: z, forth: y, fifth: t }, datatype: JSON, asyn: !1, error:function(){alert ("خطا در هنگام بررسی فاز ")}, success: function (Reply, Code) { if (Reply == 'true') { if (Code = "1") { $('#P_WindowH3').modal('show'); } else if (Code = "2") { $('#P_WindowH1').modal('show'); } else if (Code ="3") { $('#P_WindowH2').modal('show'); } } else { $("#StartDate").focus(); alert("موردی دیده نشد") } } }); }); }); </script>
که با مراجعه به این متد یک مقدار را بر می گرداند
if (PhaseID == 2 || PhaseID == 6) { if (CBCid.ToString() != null) { if ((Hemoglobin < 80) && (platelets < 30000)) { if ((granulocyte < 100) && (infection == true)) { return Json("True", "1", JsonRequestBehavior.AllowGet); } else { return Json("True", "2", JsonRequestBehavior.AllowGet); } } else if ((granulocyte < 100) && (infection == true)) { if ((Hemoglobin < 80) && (platelets < 30000)) { return Json("True", "1", JsonRequestBehavior.AllowGet); } else { return Json("True", "3", JsonRequestBehavior.AllowGet); } } else { return Json("False", JsonRequestBehavior.AllowGet); }
براساس داده های من این خط به فانکشن برگردانده می شود
return Json("True", "1", JsonRequestBehavior.AllowGet);
ولی فانکشن من همیشه وارد این بخش می شود
else { $("#StartDate").focus(); alert("موردی دیده نشد") }
ایراد فانکشنی که نوشتم کجاست که کدهای ارسال شده را اجرا نمی کند؟
این که این خط :
return Json("True", "1", JsonRequestBehavior.AllowGet);
به سمت View برگشت داده میشه نشون میده که در سمت Controller اکشن مربوط بدرستی کار کرده و مقدار رو برگشت داده و مشکل از سمت همین کد Jquery Ajax هست.
کد رو به صورت زیر تغییر بده و تست کن :
<script> $(function () { $('#Phase_id').on('change', function () { var z = 6; var y = 4; var t = $('#Phase_id').val(); $.ajax({ type: 'POST', url: ' @Url.Action("Home", "Phase")', data: { third: z, forth: y, fifth: t }, datatype: JSON, asyn: !1, error:function(){alert ("خطا در هنگام بررسی فاز ")}, success: function (result) { if (result.Reply == 'true') { if (result.Code = "1") { $('#P_WindowH3').modal('show'); } else if (result.Code = "2") { $('#P_WindowH1').modal('show'); } else if (result.Code ="3") { $('#P_WindowH2').modal('show'); } } else { $("#StartDate").focus(); alert("موردی دیده نشد") } } }); }); }); </script>
لازم نیست مقدار JSON بازگردانی شده از نوع string باشد میتوان به صورت anonymous type ارسال کنید:
return Json(new {Reply =true , Code = 1 } , JsonRequestBehavior.AllowGet);
$(function () { $('#Phase_id').on('change', function () { var z = 6; var y = 4; var t = $('#Phase_id').val(); $.ajax({ type: 'POST', url: ' @Url.Action("Home", "Phase")', data: { third: z, forth: y, fifth: t }, error:function(){alert ("خطا در هنگام بررسی فاز ")}, success: function (result) { if (result.Reply == true) { if (result.Code == 1) { $('#P_WindowH3').modal('show'); } else if (result.Code == 2) { $('#P_WindowH1').modal('show'); } else if (result.Code == 3) { $('#P_WindowH2').modal('show'); } } else { $("#StartDate").focus(); alert("موردی دیده نشد") } } }); }); });
همچنین در نام گذار مقادیر رو اشتباه وارد کردید.
هر دوتا راه حل را امتحان کردم و مشکل هنوز پابرجاست و باز کد مربوط به مقدار False را نمایش می دهد
(نکته شماره های پنجره های مدال ربطی به اعداد کدها ندارد)
سلام
return Json(new {Reply ="true" , Code = 1 } , JsonRequestBehavior.AllowGet);
متشکرم. راه حل آقای علیزاده مشکل را حل کرد
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)