ASP.NET MVC’de Kullanıcıları Özel 404 Sayfasına Yönlendirme

Web uygulamaları dünyasında, kesintisiz bir kullanıcı deneyimi sağlamak esastır. Bir kullanıcının URL’yi dikkatlice yazdığını hayal edin ve karşılaştığı hatanın var olmayan bir rota nedeniyle sinir bozucu bir hata sayfası olması. Bu durum, kullanıcıların kafasının karışmasına ve hayal kırıklığına uğramasına neden olabilir. Neyse ki, geliştiriciler olarak, bu tür senaryoları nazikçe yöneterek uygulamalarımızı geliştirme yeteneğine sahibiz.

Bu blog gönderisinde, ASP.NET MVC’de var olmayan bir denetleyiciye erişmeye çalışan kullanıcıları nasıl özel bir 404 hata sayfasına yönlendireceğimizi keşfedeceğiz.

Problemi Anlamak

Bir kullanıcı, ASP.NET MVC uygulamanızda herhangi bir denetleyici veya işleme karşılık gelmeyen bir URL’yi ziyaret etmeye çalıştığında, bir istisna fırlatılır. Örneğin, birisi şu URL’ye gitmeye çalışırsa:

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

Bu URL yanlıştır ve /pages/ denetleyicisine yönlendirilmelidir. Kullanıcıyı genel bir hata mesajına yönlendirmek yerine, onları dostça ve bilgilendirici bir özel 404 sayfasına yönlendirmek istiyoruz.

Çözüm Genel Bakış

Bu hedefe ulaşmak için, ASP.NET MVC uygulamamızı belirli bir 404 sayfasına yönlendirme ile yönlendirme istisnalarını ele alacak şekilde yapılandırmamız gerekiyor. Bunu yapmanın adım adım bir incelemesi burada.

Adım 1: Özel Hata Sayfanızı Tanımlayın

Yönlendirme yapılandırmasına girmeden önce, ilk adım bir özel 404 sayfası oluşturmaktır. Bu, kullanıcının hatadan haberdar olduğu ve muhtemelen yararlı bağlantılar önerdiği basit bir görünüm olabilir.

  • Bir Görünüm Oluşturun: /Views/Shared/ dizininizde Error404.cshtml adında yeni bir görünüm ekleyin.
  • İçeriği Tasarlayın: İçeriğin kullanıcı dostu olmasına dikkat edin. Örneğin:
    <h1>Hata! Sayfa Bulunamadı</h1>
    <p>Üzgünüz, aradığınız sayfa mevcut değil. Lütfen URL'yi kontrol edin veya ana sayfaya geri dönün.</p>
    

Adım 2: Özel Hatalar için Web.Config’i Güncelleyin

Sonraki adım, belirli bir HTTP durum kodu gerçekleştiğinde ASP.NET MVC uygulamanıza özel hata sayfasını görüntülemesini bildirmektir. Web.config dosyanızı açın ve aşağıdaki satırları ekleyin:

<system.web>
  <customErrors mode="On" defaultRedirect="~/Error404">
    <error statusCode="404" redirect="~/Error404" />
  </customErrors>
</system.web>
  • mode: Bu değeri On olarak ayarlayarak özel hata sayfalarını etkinleştirin.
  • defaultRedirect: Bu, özel hata sayfanıza giden yoldur.
  • error: Bu, 404 hatası oluştuğunda uygulamanın belirtilen sayfaya yönlendirilmesi gerektiğini belirtir.

Adım 3: Global.asax Dosyasında Yönlendirmeleri Yönetin

Sonraki adım, yönlendirme sorunlarının yakalanmasını sağlamaktır. Global.asax dosyanızı açın ve aşağıdaki yöntemi ekleyin:

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

    if (httpException != null)
    {
        int httpCode = httpException.GetHttpCode();
        if (httpCode == 404) // Bulunamadı
        {
            Response.Clear();
            Server.ClearError();
            Response.Redirect("~/Error404");
        }
    }
}
  • Application_Error(): Bu yöntem, uygulamanızda önceden işlenmemiş bir hata oluştuğunda çalışır.
  • İstisnayı Yakala: Kod, istisnayı yakalar ve HTTP durum kodunun 404 olup olmadığını kontrol eder.
  • Yönlendir: Eğer öyleyse, hatayı temizler ve kullanıcıyı özel 404 sayfanıza yönlendirir.

Sonuç

Bu adımları takip ederek, var olmayan sayfalara yönelen kullanıcıların, genel bir istisna hatası yerine dostça bir 404 hata sayfası ile karşılaştıklarından emin olabilirsiniz. Bu, kullanıcı deneyimini geliştirmekle kalmaz, aynı zamanda ASP.NET MVC uygulamanızda bir profesyonellik düzeyi de korur.

Web uygulamalarınızı geliştirmeye ve iyileştirmeye devam ederken, hataları nasıl yönettiğinizin detaylara olan dikkatiniz ve kullanıcı memnuniyetine olan bağlılığınızı gösterdiğini unutmayın. Bu basit değişiklikleri uygulamak için zaman ayırın ve web uygulamanızın kullanılabilirliğindeki olumlu etkiyi görün.


Bu basit adımlarla, ASP.NET MVC uygulamanızın yönlendirme hatalarını nasıl yöneteceğini geliştirebilirsiniz. İyi kodlamalar!