2010-06-30 15 views
39

Görüntüleme \ Paylaşımında görünüme gerek kalmadan denetleyicilerin alt işlemlerini çağırmak için Html.Action("ActionName", "ControllerName")1 kullanıyorum. Bu, oturum veya çerez bilgisi gibi şeyleri görüntülemek için harika çalışıyor.ASP.NET MVC'de Html.Action() işlevini kullanarak bir eyleme parametreleri nasıl geçirebilirim?

Çerezlere sadece erişmek yerine, Html.Action("ActionName", "ControllerName") no'lu ek parametrelere geçmek istiyorum, böylece işlem orijinal görünümüne iletilen verilere göre farklı kodları çalıştırabilir.

Parametreleri bir alt denetleyiciye farklı bir denetleyicide iletmek için farklı bir yöntem mi kullanmalıyım? Biri bunu nasıl başarabilirdi?

cevap

84

Böyle RouteValues ​​özelliğinde ek veriler belirtebilirsiniz.

Html.Action("Controller","Name", new { id = 1 }) 
+2

Aw Sweet !!! RouteValues'i intelisense'de gördüm ama bu formatı kullanmadım. Html.Action ("Action", "Controller", model.Paramter) 'ı denedim. Bunu hemen deneyeceğim. – quakkels

+0

Metin gibi bir dizeyi veya otomatik doldurulmuş bir açılır liste öğesinin kimliğini nasıl geçirirsiniz? – antman1p

+1

@ antman1p Yeni bir soru gibi geliyor, bir yorum değil. Buradaki yeni soruya bir bağlantı gönderin ve mümkün olduğunca yardımcı olacağım. Bir şey, istemcideki ne yapmak istediğinize benziyor, kullanıcı (tarayıcı) ile etkileşime bağlı olduğu için, özellikle de bu soru, bir parametre içeren bir eyleme nasıl bağlantı verileceğini ifade ediyor. Sunucu tarafında bir görünümde işlenir. –

-1

bu soruya biraz eklemek için, ben ASP.Net MVC 5 kullanıyorum ve bu kodla bunu başarmak için başarılı olabilir:

@Html.Action("foo",new {parameter1=1}) 
+2

Bu aşırı bir yüktür aynı yöntem. Bu aşırı yüklenmede, geçerli görünümü oluşturmak için kullanılan aynı denetleyiciyi çağırdığınız ve eylemin "foo" olduğu varsayılmaktadır. Önem vermeye değer birkaç başka aşırı yüklenme var: https://msdn.microsoft.com/en-us/library/system.web.mvc.html.childactionextensions.action%28v=vs.118%29.aspx –

İlgili konular