"MVC isteğinden itibaren geçerli alan adını almanın bir yolunu" rea "sadece bir yolun bir niteliğidir. Diğer kullanımlar için güvenilir değil. Özellikle, denetleyicilerin yardımcı tarafından kullanılabilecek bir öznitelik (System.Attribute sınıfı değil, soyut terim düşünün) istiyorsanız, o zaman bu öznitelikler denetleyicilerin üzerinde bulunmalıdır, bu alanda değil.
Pratik bir örnek olarak, belirli bir alandaki herhangi bir denetleyiciden önce çalıştırılacak bir mantık (eylem filtresi gibi) istiyorsanız, eylem filtresini doğrudan bu denetleyicilerle ilişkilendirmelidir. Bunu yapmanın en kolay yolu, bazı MyAreaBaseController öğelerini bu filtreyle ilişkilendirmek ve daha sonra mantıksal olarak o alanla ilişkilendirmek istediğiniz her bir denetleyiciye bu tür alt sınıfı eklemek olacaktır. Bir karar vermek için RouteData.DataTokens ["alan"] 'a bakan küresel bir filtre gibi başka herhangi bir kullanım desteklenmez ve potansiyel olarak tehlikelidir.
Gerçekten, gerçekten alan adını almanız gerekiyorsa, onu bulmak için RouteData.DataTokens["area"]
'u kullanabilirsiniz.
Merhaba Levi, bu harika bir cevaptı teşekkür ederim. –
Bu konuda .NET ekibinden haber almak harika. Cevabınız görünümde olduğunda geçerli midir? Farklı alanlarda kullanılan bir paylaşılan görüşüme sahibim ve kullanıcının sitede bulunduğu yere göre görünümünü değiştirmek istiyorum. Kısmi bir görünüm kullanabilirdim, ancak ana görünüm neredeyse boş olurdu. ViewBag'a bir şey koymak yanlış görünüyor çünkü bu kesinlikle bir sunum mantığı. –