MVC uygulamasındaki tüm görünümler için günlüğe kaydedilmiş Kullanıcı örneğini (veya henüz kimseye giriş yapmadıysa) sağlamak istiyorum. InvokeAction'ı geçersiz kılan ve ViewData'da kaydedilmiş kullanıcı örneğini (controllerContext.Controller.ViewData ["LoggedUser"] = xxx) sağlayan kendi ControllerActionInvoker sınıfımı başarıyla uyguladım. Sorun şu ki, kayıtlı kullanıcı örneğini tüm uygulamada geçirmek için güçlü yazılan Modeli kullanmak istiyorum. Tüm güçlü yazılan ViewData sınıfları için temel sınıf olabilecek ve aynı zamanda oturum açmış kullanıcı örneğini de sağlayan ApplicationViewDataBase sınıfına sahip olmayı düşünüyordum. Tüm Görünümlerim'de kayıtlı kullanıcı örneğine kolayca erişebildi.MS MVC - Tüm görünümlerim için global olarak güçlü bir şekilde yazılan ViewData/Model'i doldurabilir miyim?
Güçlü bir şekilde global olarak girildiğinden, ControllerActionInvoker.InvokeAction geçersiz kılma işleminde yaptığım gibi doldurulabilir mi? Ya da bir şekilde Kullanıcı Örneğimi Page.User uygulamasında sağlamak daha iyi midir? Ben Page.User kullanmak için muhtemelen daha kaygan bulabilirsiniz, ama aynı zamanda benim Kullanıcı örneği enjekte nasıl bir çözüm bulamadı ...
Bence noktayı kaçırıyorsun. Uygulamaların, oturum açmış kullanıcı için uygulamaya özgü ayrıntıları depolayan özel bir kullanıcı sınıfına sahip olması yaygındır. Sorun, kimin giriş yaptığını bulamıyor, bu kullanıcı nesnesini veritabanından, ilgili tüm kodun yanıt kullanımına yetecek kadar erken yüklemesini sağlıyor. – christutty