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

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

کارنکردن RedirectToAction در حالت درخواست ایجکسی

جمعه, 17 شهریور 1396 15:29

کارنکردن RedirectToAction در حالت درخواست ایجکسی

درود ,

در انتهای دستورات یک اکشن که به صورت ایجکسی درخواست و Post کردن اطلاعات به آن انجام میشود یک دستور :

 return RedirectToAction("GaleryImage?Id=" + P_Id);

رو نوشتم ولی وقتی به این خط کد میرسه کاری نمیکنه !

توضیح کاربرد {

بعد اینکه در یک صفحه اطلاعات کامل محصول رو میگیرم و کامل درج شد میخوام بفرستمش به اکشنی دیگه که تصاویر گالری رو وارد کنه .

قبلش این کار رو بصورت ایجکسی و Replace به جای کل اطلاعات صفجه جاری انجام دادم ولی چون در این حالت با رفرش صفحه دیگه نمیشه به صفحه دسترسی داشت از این روش صرف نظر کردم.

}

دلیلی این مورد اینه که چون درخواست ایجکسی بوده امکان رفتن به یک اکشن دیگه وجود نداره ؟

چه کدی بنویسم که بره به اکشن مورد نظر که میخوام ؟

جمعه, 17 شهریور 1396 18:26

نمی تواند  اکشن مربوطه را تشخیص دهد به این دید که پارامتری که باید به آن ارسال شود را درون نام اکشن قرار داده اید، اگر دقت کنید این متد چند پارامتر دریافت می کند که یکی از آن ها مقادیر route می باشد برای ارسال route value که در این قسمت Id است به صورت زیر عمل می کنیم:

            return RedirectToAction("myaction" , new {Id = id})

جمعه, 17 شهریور 1396 19:01

ممنون مهندس ,

با دیباگ برسی کردم این کد که شما گفتید به درستی کار میکنه و به رویداد [HttpGet] اکشن موردنظر میره :

ولی بعدش بازهم اتفاقی نمیفته و مرورگر فقط صفحه جاری رو نشون میده.

فکر کنم دلیل اصلیش ایجکس بودن Form و عملیات هست ,درسته ؟

جمعه, 17 شهریور 1396 19:54
جمعه, 17 شهریور 1396 23:00

 ممنون مفید بود , منتهی من برای ارسال فورم به سمت کنترولر به شکل زیر کار کردم و از کد Jquery استفاده نکردم , در تابع OnSuccess کد رو نوشتم :


منتهی مشکلی که هست اینه که در هر بار پست شدن سمت کنترولر و برگشت دوباره به View این تابع OnSuccess اجرا میشه ,
در حالی که من میخوام اگه همه مراحل رو انجام داد و به انتهای اکشن رسید این تابع اجزاه اجرا داشته باشه ,
برای این کار به چه شکل باید عمل کرد ؟

جمعه, 17 شهریور 1396 23:27

در سمت کنترولر به این شکل مقدار رو برگشت دادم و حل شد ,

return Json(new { success = true }, JsonRequestBehavior.AllowGet);

ممنون مهندس علیزاده .

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید