การเปลี่ยนเส้นทางผู้ใช้ไปยังหน้า 404
ที่กำหนดเองใน ASP.NET MVC
ในโลกของแอปพลิเคชันเว็บ การสร้างประสบการณ์ผู้ใช้ที่ราบรื่นเป็นสิ่งสำคัญ จินตนาการถึงผู้ใช้ที่พิมพ์ URL อย่างระมัดระวังเพียงเพื่อพบกับหน้าแสดงข้อผิดพลาดที่น่าผิดหวังเนื่องจากเส้นทางที่ไม่มีอยู่ ซึ่งอาจทำให้ผู้ใช้รู้สึกสับสนและผิดหวัง โชคดีที่ในฐานะนักพัฒนา เรามีความสามารถในการปรับปรุงแอปพลิเคชันของเราด้วยการจัดการสถานการณ์ดังกล่าวอย่างมีระเบียบ
ในบล็อกโพสต์นี้ เราจะสำรวจวิธีการเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าแสดงข้อผิดพลาด 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 ของคุณจัดการข้อผิดพลาดการกำหนดเส้นทาง ขอให้คุณสนุกกับการเขียนโค้ด!