Asp.Net Core Custom Error Page

Asp.Net Core Custom Error Page

umutduran

17 Tem, 2020 02:54

umutduran

Merhaba arkadaşlar,

Bu makalemizde yine çokça işinize yarayacak bir konuya değineceğim. Özellikle yabancı ve yerli kaynaklarda net bir şekilde açıklaması bulunmazken bu makaleyi hazırlamam iyi olacak gibi görünüyor. 

.Net Core ile bir web projesi hazırladınız. Yayınladınız fakat en basitinden yazdığınız makaleyi sildiniz fakat google indexlediği için bu makaleniz kayıtlarda duracak. Tıklandıkça sitenize zararı olacak çünkü custom page hazırlamadıysanız büyük ihtimalle tarayıcının 500 hatasını alacaksınız.

Custom Page Nasıl Hazırlanır?

Arkadaşlar öncelikle Startup.cs dosyamızda aşağıdaki düzenlemeleri yapıyoruz.

if (env.IsDevelopment())
{
	app.UseDeveloperExceptionPage();
}
else
{
	app.UseExceptionHandler("/hata");
	app.UseHsts();
}
app.UseStatusCodePagesWithRedirects("/hata/{0}");

Siz hata değil error dersiniz yönleneceği sayfa çok önemli değil. Aslında önemli fakat HomeController.cs sayfasında da aynı şekilde bir method tanımlarsanız sorun olmaz.

HomeController.cs

[Route("hata/{code}")]
public IActionResult Hata(string code)
{
	return View();
}

Fark ettiyseniz yönlendirdiğim sayfanın adı ile bir IActionResult methodu oluşturuyorum. Daha sonra yapmam gereken tek şey ise Views/Home klasörümde hata.cshtml isminde bir dosya oluşturmak. Bu dosya ister bir Layout'a bağlı olsun isterseniz benim yaptığım gibi bağımsız tasarımdan ayrı bir sayfa olsun.

Şimdi gelelim hata.cshtml dosyasında hata koduna nasıl ulaşacaksınız? Aşağıda benim kullandığım yöntem var. Siz kendi yönteminizi geliştirebilirsiniz.

@{ 

    string[] data = Url.RouteUrl(ViewContext.RouteData.Values).Split('/');

    string hataKodu = data[data.Length - 1];

}

Artık hata.cshtml dosyamda istediğim yerde @ kullanarak hatakodu değişkenimi kullanabilirim.

Çok karışık bir konu değil fakat yapamayanlara yorumlarda seve seve yardım ederim. 

İyi bloglamalar!

Aşağıya mail adresini girerek web sitemdeki makalelere abone olabilirsin. İlgini çekecek bir makale yazdığım zaman seni haberdar edebilirim!

Yorum Yap

*HTML kodlarına izin verilmemektedir. Düz metin olarak yorum giriniz.