5

Web.config sayfasındaki customErrors etiketinde bir denetleyiciye işaret ediyorum. Denetleyicimde, birden çok uygulama tarafından paylaşılan bir harici hata sayfasına yönlendiriyorum.ASP.NET MVC, customErrors ayarlarımı onurlandırmak için nasıl alabilirim?

<customErrors defaultRedirect="~/Error/ServerError" mode="On">

Benim denetleyicisi: ben hata işleme sınamak için Hata/ErrorTest arıyorum

public class ErrorController : Controller 
{ 

    public ActionResult ServerError() 
    { 
     return Redirect("/Systems/ASPNETErrorHandling/ErrorPage.aspx"); 
    } 

    public ActionResult ErrorTest() 
    { 
     throw new Exception("testing error handling"); 
    } 
} 

. Ancak her zaman belirtilen denetleyiciye yeniden yönlendirmek yerine Görünümler/Paylaşılan/Hata.cshtml'ye yönlendirir.

Asp.net mvc'i customErrors ayarlarımdaki defaultRedirect yolunu onurlandırmak için nasıl alabilirim?

güncelleyin: Ben de ELMAH kullanarak ve this post açıklandığı gibi HandleErrorAttribute basan ediyorum. Net Reflector'dan, HandleErrorAttribute tabanının görünüm olarak Error ayarını görüyorum. Bunun, Error.cshtml veya başka bir görünüme yönlendiren çok şey olduğunu düşünmüyorum.

cevap

2

Sorunun güncellenmesinde de söylediğim gibi, ELMAH kullanmak için this post numaralı belgede açıklandığı gibi HandleErrorAttribute öğesini geçersiz kılıyorum. Temel sınıf otomatik olarak görünüm olarak Hata ayarını yapar. Bu yüzden sadece base.OnException(context);'u yorumladım ve işe yarıyor. En iyi çözüm olup olmadığını bilmiyorum, ama bence amaç benim için çalışmalı.