Site.Master dosyasında, 3 basit ViewData parametresi (tüm çözümümde yalnızca 3) var. Bu ViewData değerleri, uygulamamdaki her bir sayfa için kritik öneme sahiptir. Bu değerler benim sitemde kullanıldığından, çözümümdeki her denetleyicideki her Eylem yöntemi için bu değerleri doldurmak üzere OnActionExecuting yöntemini geçersiz kılan soyut bir SiteController sınıfı oluşturdum.ViewData'yı HandleError View'a nasıl geçiririm?
[HandleError(ExceptionType=typeof(MyException), View="MyErrorView")]
public abstract class SiteController : Controller
{
protected override void OnActionExecuting(...)
{
ViewData["Theme"] = "BlueTheme";
ViewData["SiteName"] = "Company XYZ Web Portal";
ViewData["HeaderMessage"] = "Some message...";
base.OnActionExecuting(filterContext);
}
}
Ben ile karşı karşıya ediyorum sorun HandleErrorAttribute SiteController sınıf seviyesi özelliğinden de tekmelediğinde bu değerler (sonuçta ve Site.Master) MyErrorView geçirilmediğini olmamasıdır. İşte benim problem göstermek için basit bir senaryodur: Ben ama boşuna yanı benim SiteController içinde OnException() yöntemini geçersiz kılarak ViewData parametreleri doldurarak denedim
public class TestingController : SiteController
{
public ActionResult DoSomething()
{
throw new MyException("pwnd!");
}
}
. :(
Ne bu durumda benim Site.Master için ViewData parametrelerini geçirmek için en iyi yoldur? HandleErrorAttribute ViewData bir hata oluşursa görünümüne geçirilen değiştirir Bunun nedeni
Vay, bu çok bunun olacağını düşündüğümden daha karmaşık oldu. :) Anladım ve bunu anlamak için ne yaptığınızı ve neden yaptığınızı mükemmel bir şekilde anladım. Cevabınız için teşekkürler! – Luc
bu aslında çalışmıyor ... – fearofawhackplanet
"çalışmıyor" özellikle yararlı değildir. Ben ve diğerleri için yaptım. Kullandığınız MVC versiyonunu kontrol etmelisiniz, çok değiştiğinden eminim. –