2011-06-18 15 views
18

içinden akım kontrolörü ve harekete Alma: Bu mükemmel çalışıyorBen asp.net MVC3 mevcut denetleyicisi ve eylemi almak için aşağıdaki kullanıyorum kısmi görünümü

var currentAction = routeData.GetRequiredString("action"); 
var currentController = routeData.GetRequiredString("controller"); 

. Ancak, bunu benim düzenimden çağrılan kısmi görünüm içinde çağırırsam, "Düzen" geçerli denetleyici olarak döndürülür. Bu elbette doğru davranış, ama ana denetleyicinin adına erişmek için herhangi bir yolu var mı? Daha fazla açıklama için

Düzenleme:

Ben _Layout.cshtml içinden benim menü denetleyicisi ve kısmi görünümü sesleniyorum:

o Menü kısmi görünümü içinden Sonra
@Html.Action("Menu", "Layout") 

, seni arıyorum Geçerli eylemi ve denetleyiciyi döndüren kod.

+0

olarak kısmi görünümünde yapılabilir. Bu kısmı nasıl çağırıyorsun? –

+0

@ darin-dimitrov Yazımı daha ayrıntılı bilgi ile güncelledim. Bu hiç yardımcı olmaz mı? – Jonathan

+0

evet yardımcı oluyor, hatta bir cevap bile alıyorsunuz :-) –

cevap

43

Güncelleştirilmiş sorunuzu ve kodunuzu gösterdikten sonra çok daha net: kısmi görünüm dahil etmiyorsunuz. Çocuk eylemi diyorsun. Html.Partial ve Html.Action arasında büyük bir fark var. Yani bu yapabileceğini bu çocuk eylem içine ana bağlamı almak istiyorsanız: kullanarak

public ActionResult Menu() 
{ 
    var rd = ControllerContext.ParentActionViewContext.RouteData; 
    var currentAction = rd.GetRequiredString("action"); 
    var currentController = rd.GetRequiredString("controller"); 
    ... 
    return View(); 
} 
+2

Spot on. Teşekkür ederim Darin - Formlardan MVC'ye geçmek oldukça büyük bir sıçramadır, ancak sizin gibi insanlar bu geçişi biraz daha kolaylaştırıyor! – Jonathan

37

Bir çağrıdan sonra ana denetleyicileri adını erişmek için bir yol arıyoruz bu sayfada tökezledi Kısmi

@Html.Partial("Paging") 

Bu Sorunuz çok açık değil

@{ 
    var controller = ViewContext.RouteData.GetRequiredString("controller"); 
    var action = ViewContext.RouteData.GetRequiredString("action"); 
} 
+2

Günümü sen yaptın! :) –

İlgili konular