نمایش صفحه Error هنگام خطا در PartialView
سلام دوستان یک پارشیال ویو دارم که کدهاش رو به صورت زیر نوشتم. در نمایش این PartialView مشکلی ندارم.
کدهای Controller :
[HttpGet]
public IActionResult myPartial(int ID)
{
if (ID == 0)
{
Return RedirectToAction("Error","Home");
}
ViewBag.ID = ID;
return PartialView("_Follow");
}
کدهای cshtml :
<a asp-controller="ControllrtName" asp-action="myPartial" asp-route-ID="@item.ID" data-toggle="modal" data-target="#modal-action">
نمایش
</a>
خب برای نمایش PartialView مشکلی وجود نداره. اما توی Action شرط گذاشتم که اگر ID برابر با 0 بود بره به Controller با نام Home و اکشن با نام Error رو نمایش بده. ضمنا آدرس "Home/Error" در هیچ Area نیست اما اکشن متد myPartial در یک area هست.
حالا سوال این هست چجوری وقتی خطایی به وجود اومد صفحه خطا رو نمایش بدم؟ چون ظاهرا وقتی یک پارشیال ویو رو صدا میزنیم نمیشه دیگه یک ویو رو نمایش داد
سلام و درود
ببینید شما وقتی یک Partial View رو return می کنید در واقع نوع درخواست شما از نوع یک Partial View هست و دیگه نمیتونید یک View برگردونید. بنظرم بهتره برای هدایت کاربر در صورت بروز خطا حین اجرای یک Partial View مثل خودش یک پارشیال ویو رو برگردونید.
یعنی کدهای شما به این صورت میشه :
[HttpGet]
public IActionResult myPartial(int ID)
{
if (ID == 0)
{
Return Redirect("~/Home/PartialError");
}
ViewBag.ID = ID;
return PartialView("_Follow");
}
دقت کنید که در کدهای بالا به جای استفاده از متد RedirectToAction از Redirect استفاده شده چون شما گفتید صفحه خطا در یک Area جداگانه هست. حالا می تونید توی کنترلر Home یک اکشن متد ایجاد کنید به نام PartialError و پارشیال ویو برای نمایش خطا رو صدا بزنید
[HttpGet]
public IActionResult PartialError()
{
return PartialView("_PartialError");
}
خب همونطوری که میبینید یک پارشیال ویو به نام _PartialError رو نمایش میدیم. در مجموع برای کنترل خطا حین اجرای پارشیال شاید بهتر باشه یک پارشیال ویو برگشت داده بشه.
البته خب راههای دیگه ای هم هست که می تونید این لینک رو مطالعه کنید.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2