2015-09-12 12 views

cevap

14

Sonunda Burada anlatılan cevabını buldu. Böyle Etiketlediğiniz yardımcı sınıfta bir özellik oluşturmanız gerekir:

[ViewContext] 
public ViewContext ViewContext { get; set; } 

Sonra şöyle akım kontrolörü veya eylemi erişebilirsiniz:

var pageController = ViewContext.RouteData.Values["controller"]; 
var pageAction = ViewContext.RouteData.Values["action"]; 

Belki yeterince araştırma yapmadan önce bu soru haberi, ama bu tamamen açık değildi, bu yüzden umarım bu başkasına yardım eder!

+0

Yaptığım şekilde, bu şeyleri taghelper'ımın öznitelikleri olarak Microsoft'un bunu AnchorTagHelper için yaptığı gibi aynı şekilde asp denetleyicisine ve asp eylemine iletmek, böylece taghelper'ımın tüketicisi bunu belirtmek yerine Geçerli istek ile aynı kullanmayı varsayıyoruz. –

+0

Teşekkürler Joe - sadece açıklığa kavuşturmak için bunu yapıyorum. Söz konusu linkin şu anda aktif olup olmadığını görmek için rota verisinde neyin asp-controller ve asp-action ile karşılaştırdığımı karşılaştırıyorum. menüde vurgulamak. Yani bu paylaşılan bir tıraş makinesi görünümündeyse, o anda aktif olanı geçemezsiniz, dinamik olmalı. Umarım bu mantıklıdır. –

+0

@Joe - ayrıca, ilgi alanı dışı olarak onlara asp denetleyicisine mi yoksa sadece denetleyiciye mi diyorsunuz? Asp-öneki kullanmam gerekip gerekmediğinden emin değilim. Http://stackoverflow.com/questions/32532734/should-my-custom-asp-net-5-mvc-6-tag-helpers-have-an-asp-prefix adresini kaldırdı, ancak maalesef bekletildi (maalesef Dini bir savaşı teşvik etmek veya fikirler hakkında bir şey) –