إعادة توجيه المستخدمين إلى صفحة 404 مخصصة في ASP.NET MVC

في عالم تطبيقات الويب، يعد الحفاظ على تجربة مستخدم سلسة أمرًا ضروريًا. تخيل أن مستخدمًا يقوم بكتابة عنوان URL بعناية فقط ليواجه صفحة خطأ محبطة بسبب مسار غير موجود. هذا يمكن أن يترك المستخدمين يشعرون بالارتباك وخيبة الأمل. fortunately، كمطورين، لدينا القدرة على تحسين تطبيقاتنا من خلال التعامل بلباقة مع هذه السيناريوهات.

في هذا المنشور على المدونة، سنستكشف كيفية إعادة توجيه المستخدمين إلى صفحة خطأ 404 مخصصة في ASP.NET MVC عندما يحاولون الوصول إلى وحدة تحكم غير موجودة.

فهم المشكلة

عندما يحاول المستخدم زيارة عنوان URL لا يتوافق مع أي وحدة تحكم أو إجراء في تطبيق ASP.NET MVC الخاص بك، يتم إطلاق استثناء. على سبيل المثال، إذا حاول شخص ما التنقل إلى:

http://www.nosite.com/paeges/1

هذا عنوان URL غير صحيح ويجب حله إلى وحدة التحكم /pages/. بدلاً من توجيه المستخدم إلى رسالة خطأ عامة، نريد إعادة توجيههم إلى صفحة 404 مخصصة ودية ومفيدة.

نظرة عامة على الحل

لتحقيق هذا الهدف، نحتاج إلى تكوين تطبيق ASP.NET MVC الخاص بنا للتعامل مع استثناءات التوجيه من خلال إعادة التوجيه إلى صفحة 404 المحددة. إليك تفصيل خطوة بخطوة لكيفية القيام بذلك.

الخطوة 1: تعريف صفحة الخطأ المخصصة الخاصة بك

قبل أن نتطرق إلى تكوين التوجيه، الخطوة الأولى هي إنشاء صفحة 404 مخصصة. يمكن أن تكون هذه عرضًا بسيطًا يُخبر المستخدم عن الخطأ وقد يقترح روابط مفيدة.

  • إنشاء عرض: في دليل /Views/Shared/ الخاص بك، أضف عرضًا جديدًا يسمى Error404.cshtml.
  • تصميم المحتوى: تأكد من أن المحتوى صديق للمستخدم. على سبيل المثال:
    <h1>عذرًا! الصفحة غير موجودة</h1>
    <p>عذرًا، الصفحة التي تبحث عنها لا توجد. يرجى التحقق من عنوان URL أو العودة إلى الصفحة الرئيسية.</p>
    

الخطوة 2: تحديث ملف Web.Config للأخطاء المخصصة

بعد ذلك، تحتاج إلى إبلاغ تطبيق ASP.NET MVC الخاص بك لعرض صفحة الخطأ المخصصة عندما تحدث حالة HTTP المحددة. افتح ملف Web.config الخاص بك وأضف الأسطر التالية:

<system.web>
  <customErrors mode="On" defaultRedirect="~/Error404">
    <error statusCode="404" redirect="~/Error404" />
  </customErrors>
</system.web>
  • mode: قم بتعيين هذا على On لتمكين صفحات الأخطاء المخصصة.
  • defaultRedirect: هذا هو المسار إلى صفحة الخطأ المخصصة الخاصة بك.
  • error: يحدد أنه عندما يحدث خطأ 404، يجب على التطبيق إعادة التوجيه إلى الصفحة المحددة.

الخطوة 3: التعامل مع التوجيهات في ملف Global.asax

بعد ذلك، ترغب في التأكد من التقاط مشاكل التوجيه. افتح ملف Global.asax الخاص بك وأضف الطريقة التالية:

protected void Application_Error()
{
    Exception exception = Server.GetLastError();
    HttpException httpException = exception as HttpException;

    if (httpException != null)
    {
        int httpCode = httpException.GetHttpCode();
        if (httpCode == 404) // غير موجود
        {
            Response.Clear();
            Server.ClearError();
            Response.Redirect("~/Error404");
        }
    }
}
  • Application_Error(): تعمل هذه الطريقة في كل مرة يحدث فيها خطأ غير معالج في تطبيقك.
  • التقاط الاستثناء: يقوم الكود بالتقاط الاستثناء ويتحقق مما إذا كان رمز حالة HTTP هو 404.
  • إعادة التوجيه: إذا كان الأمر كذلك، يتم مسح الخطأ وإعادة توجيه المستخدم إلى صفحة 404 المخصصة الخاصة بك.

الخاتمة

من خلال اتباع هذه الخطوات، يمكنك التأكد من أن المستخدمين الذين يتنقلون إلى صفحات غير موجودة يواجهون صفحة خطأ 404 ودية بدلاً من رسالة استثناء عامة. هذا لا يحسن تجربة المستخدم فحسب، بل يحافظ أيضًا على مستوى من الاحترافية في تطبيق ASP.NET MVC الخاص بك.

عندما تستمر في بناء وتعزيز تطبيقات الويب الخاصة بك، تذكر أن كيفية تعاملتك مع الأخطاء تتحدث بكثير عن اهتمامك بالتفاصيل والتزامك برضا المستخدم. استغرق الوقت لتنفيذ هذه التغييرات البسيطة وشاهد التأثير الإيجابي على قابلية استخدام تطبيق الويب الخاص بك.


مع هذه الخطوات البسيطة، يمكنك تحسين الطريقة التي يتعامل بها تطبيق ASP.NET MVC الخاص بك مع أخطاء التوجيه. برمجة سعيدة!