Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menghantar Data kepada Pengawal Ralat ASP.NET MVC Saya untuk Pengendalian Ralat Tersuai?

Bagaimanakah Saya Boleh Menghantar Data kepada Pengawal Ralat ASP.NET MVC Saya untuk Pengendalian Ralat Tersuai?

Patricia Arquette
Patricia Arquetteasal
2025-01-14 10:21:46686semak imbas

How Can I Pass Data to My ASP.NET MVC Error Controller for Custom Error Handling?

Pengendalian Ralat Tersuai yang Berkesan dalam ASP.NET MVC dengan Menghantar Data kepada Pengawal Ralat

Pengendalian ralat yang mantap adalah penting untuk pengalaman pengguna yang positif dalam aplikasi ASP.NET MVC. Walaupun acara Application_Error global dalam Global.asax.cs menawarkan pengurusan ralat terpusat, menghantar data yang berkaitan dengan cekap kepada pengawal Ralat memerlukan pendekatan strategik.

Contoh ini menggunakan rentetan pertanyaan untuk menyampaikan maklumat ralat kepada pengawal Ralat, mengelakkan keperluan untuk berbilang laluan ralat. Pengendali Application_Error diubah suai untuk mengubah hala kepada tindakan yang sesuai dalam pengawal Ralat, membenamkan mesej ralat dalam rentetan pertanyaan:

<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 = "NotFound";
                break;
            case 500:
                action = "ServerError";
                break;
            default:
                action = "GenericError";
                break;
        }

        Server.ClearError(); // Clear the server-side error

        Response.Redirect(String.Format("~/Error/{0}?message={1}", action, Server.UrlEncode(exception.Message)));
    }
}</code>

Tindakan pengawal Ralat yang sepadan kemudiannya dikemas kini untuk mendapatkan semula mesej daripada rentetan pertanyaan:

<code class="language-csharp">// GET: /Error/NotFound
public ActionResult NotFound()
{
    string message = Request.QueryString["message"];
    ViewBag.Message = message; // Or use a ViewModel
    return View();
}</code>

Kaedah ini memudahkan pengendalian ralat dengan memanfaatkan penghalaan sedia ada. Walau bagaimanapun, adalah penting untuk mempertimbangkan potensi implikasi prestasi, terutamanya dalam persekitaran trafik tinggi, kerana penggunaan berulang boleh menjejaskan kecekapan disebabkan faktor seperti pengurusan objek sesi. Pertimbangan dan pengoptimuman yang teliti diperlukan untuk penggunaan pengeluaran.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghantar Data kepada Pengawal Ralat ASP.NET MVC Saya untuk Pengendalian Ralat Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn