Post Page Advertisement [Top]

Merhaba,
Bu yazımda sizlere web sitemizde bir hata oluştuğunda çıkacak Hata yani Error sayfasını oluşturacağız ve bu sayfayı bize özel yapacağız.



Öncelikle bir .Net MVC projesi oluşturalım.Okurken ne dinlemeli?






Oluşan projemizde Script ve Content klasöründe bootstrap js, css ve Site.css haricindeki gereksiz css 'leri silelim. Projenin Web.config'ine gelip hata aldığımızda yönlenecek sayfayı belirtelim.<system.web node'unun altına customErrors tanımlamalarını yapalım.

<system.web>
    <customErrors mode="On" defaultRedirect="~/Error">
      <error redirect="~/Error/NotFound" statusCode="404" />

    </customErrors>
...

 Projemizi oluşturduğumuzda zaten Views-> Shared klasörünün altında Error sayfasının olduğunu göreceğiz bu sayfanın View'ini istedğimiz gibi düzenleyebiliriz.


@model System.Web.Mvc.HandleErrorInfo
@{
    ViewBag.Title = "Error";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<!-- Page Heading/Breadcrumbs -->
<div class="row">
    <div class="col-lg-12">
        <h4>
Error Page
        </h4>
    </div>
</div>
<!-- /.row -->
<!-- Content Row -->
<div class="row">
    <div class="col-lg-12">
        An error is occurred during request.
       <img src="~/img/soccer_red.jpeg" />
        @if (Model != null)
        {
            <div>
                @Model.Exception.Message
                <br />
                @Model.ControllerName
            </div>
        }
    </div>

</div>


Bu view'de modelimiz MVC'de zaten var olan HanleErrorInfo sınıfı.
Şimdi ana sayfada Index sayfamızda bir hata oluşturmaya çalışıp hata sayfamıza yönlendiğini ve Hatanın sebebini Model.Exception.Message 'de yazdığını ve Controller Name 'nin de doğru olduğunu görelim.

public ActionResult Index()
        {
            string result = "";
            List<CustomClass> newlist;

            //newlist = Helper.FullList();
            newlist = Helper.FullListError();
           


            if (newlist.Count() > 0)
                result = "hello";

            ViewBag.Message = result;

            return View();

        }

FullList() metodu null döndürdüğü için yukardaki kod çalıştığında Error sayfasına yönelecektir.

        public static List<CustomClass> FullList()
        {

            List<CustomClass> result = new List<CustomClass>()
        {
            new CustomClass(){  Code = 1,  Description = "Jessica" },
            new CustomClass(){ Code = 2, Description = "Mandy" }
        };


            return result;
        }
        public static List<CustomClass> FullListError()
        {
            return null;
        }

Projemizi F5'e basıp çalıştırıp sonucu görebiliriz.Projeyi debug modda çalıştırdığımızda VS'da hata alacağız continue diyip Error sayfasına ulaşabiliriz.

Okuduğunuz için teşekkürler projenin tam halini buradan bulabilirsiniz. Sağlıkla ,huzurla kalın.

1 yorum:

Bottom Ad [Post Page]