2008-12-16 54 views
5

ASP mvc'de verilen varsayılan hata işlemesinin ötesine geçmek istiyorum. Bir hata denetleyicim var, bu yüzden ne olduğuna göre farklı hata iletileri verebiliyorum: yani Geçersiz argümanlar, İzin reddedildi, OMG DATABASE DEAD, vb.Özel ASP MVC'de hata oluştu

Bunun nasıl yapılacağını anlayamıyorum. Ne denedim: Bir Çalışma Zamanı Hatası vererek biter. Bu, bir Çalışma Zamanı Hatası vererek sona erer.

Ayrıca aynı konuda, bu mümkün gibi hata denetleyicisi geçebileceği daha fazla parametre, eklemektir:

+0

»OMG DATABASE DEAD' için +1 ve ayrıca tam yardıma ihtiyaç duyuyorlar. –

cevap

2

Sadece Görünüm adı belirtmek

[HandleError(View="/Errors/InvalidArgument",ExceptionType=typeof(ArgumentException), Error="dumb arguments")] 

teşekkür değil, bu yol ... argümanları geçerken, yapabileceğinizi düşünmüyorum.

+0

Bunu denedim, işe yaramadı ... neye gitmek için hangi kontrolörün kullanılacağını nereden biliyordu? – qui

+0

Bir denetleyiciye gitmez, görünümüne gider. Belirli bir kontrolöre gitmek istiyorsanız, istisnayı yakalamanız ve kendinizi yeniden yönlendirmeniz gerekir (bence). İstisna ayrıntılarını saklamak için TempData'yı kullanabilirsiniz. İşi yapmak için bir ActionFilter yazabilirsiniz ... – Kieron

+0

"Bir denetleyiciye gitmiyor." Sadece Kieron'un dediği gibi bir görünüm adını belirtir. Kaynak koduna bakın; önemsiz. Görünüm adı, diğer denetleyici adı gibi, önce geçerli denetleyicide, sonra paylaşımlı olarak (varsayılan WebForms ViewEngine'de, zaten) çözülür. –

İlgili konular