Gunakan acara Application_Error Global.asax untuk melaksanakan pengendalian ralat tersuai dalam ASP.NET MVC
Peristiwa Application_Error dalam fail Global.asax dalam ASP.NET MVC membolehkan pembangun mengendalikan pengecualian dan ralat yang tidak dikendalikan dalam aplikasi. Amalan biasa ialah mengubah hala pengguna ke halaman ralat tertentu berdasarkan kod status HTTP ralat.
Untuk melakukan ini, anda boleh mengubah suai pengendali acara Application_Error seperti berikut:
<code class="language-csharp">protected void Application_Error(object sender, EventArgs e) { Exception exception = Server.GetLastError(); Response.Clear(); HttpException httpException = exception as HttpException; if (httpException != null) { string action; switch (httpException.GetHttpCode()) { case 404: // 页面未找到 action = "HttpError404"; break; case 500: // 服务器错误 action = "HttpError500"; break; default: action = "General"; break; } // 清除服务器上的错误 Server.ClearError(); Response.Redirect(String.Format("~/Error/{0}/?message={1}", action, exception.Message)); } }</code>
Dalam kod yang dipertingkatkan ini, kami mengubah hala terus ke pengawal/tindakan dan menghantar butiran ralat sebagai parameter rentetan pertanyaan dan bukannya membuat laluan baharu untuk pengawal ralat. Pengawal Ralat kemudiannya akan menerima mesej dan memaparkannya menggunakan paparan yang dinyatakan dalam kaedah tindakan.
<code class="language-csharp">// GET: /Error/HttpError404 public ActionResult HttpError404(string message) { return View("SomeErrorView", message); }</code>
Pendekatan ini memudahkan pengendalian ralat dan mengelakkan keperluan untuk penghalaan tambahan. Walau bagaimanapun, terdapat pertukaran yang perlu diberi perhatian, sebagai contoh, isu prestasi mungkin timbul jika terdapat sejumlah besar gelung atau penciptaan sesi semasa pengendalian ralat.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pengendalian Ralat Tersuai dalam ASP.NET MVC menggunakan Application_Error?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!