RenderAction RenderPartial
Anladığım kadarıyla Html.RenderPartial
ASP.NET MVC sürümünde bulunan ve Microsoft.Web.Mvc.ViewExtensions
MVC Vadeli işlemler dahil HTML.RenderAction
arasında büyük bir fark var.
Ben başvurum hakkında birçok sayfa Çok bestelenmiş "(bir çeşit) her biri kendi özel işlevi olan." widget
Geldi bana daha mantıklı kullanmak için RenderAction
yöntem olarak her widget diye bir özel kontrolör sorumlu alıyorum farklı veri işleme ve özel bir görünüm (as karşı olan bir bilgisayar ve bir benzersiz görünümü modele geçmek RenderPartial
yardımcı işlemek için görünümleri).
Testlerden gibi bir denetleyicisi Oluşturmak eylem bir yönteme işaret eden bir forma sahip yaptım:
<% using (Html.BeginForm("Create", "Message", FormMethod.Post,
new { id = "messageCreateForm" })) {%>
ve arıyorum
<% Html.RenderPartial("MessageForm",new MessageDTO()); %>
render correcly bir:
<form id="messageCreateForm" method="post" action="/Message/Create">
ama RenderAction
ile aynı eşdeğer görünümü işlemek için denetleyicisinde MessageForm
eylem bir yöntem kullanılarak, yani () işlemek olmaz ile correcly:
<% Html.RenderAction<MessageController>(m => m.MessageForm()); %>
içinde işlerler:
<form id="messageCreateForm" method="post" action="">
Eylem boş olduğunu unutmayın.
Bu RenderAction
yardımcı kullanmak için doğru yol olduğunu ve bu gibi durumlarda kullanmak doğru mu?
GÜNCELLEME: Aslında _MessageForm kısmi görünümü yeniden adlandırma işler form correcly.
CEVAP
Çok eski ama cevapsız sorular : listemin içine atladı)
RenderAction
RenderPartial
arasında büyük bir fark var. RenderPartial
bir hale getirecektirView
aynı denetleyicisi (ya da paylaşılan bir), RenderAction
aslında gerçekleştirmek koca bir döngünün MVC: olacak örneğini denetleyicisi (denetleyici herhangi bir söz değil, sadece mevcut), yürütülür eylem, ve sonra geri dönmek ve render sonucu.
RenderPartial
inclusion
bile farklı bir belirtin yok ama aynı model paylaşacaktır. bir daha benzer
RenderAction
çok daha karmaşık (ve belki istenmeyen yan etkiler, Bu yüzden onlar değil, bu işlev mevcut Sürüm 1 -- başlangıçta boş olarak deneysel bir özellik).
Eğer widget varsa bu durumda yani, TAMAM her ikisini de kullanmak. Widget karmaşıklığına bağlıdır. Eğer bir DB den veri almak, bir şey karmaşık, vb yapması gereken biri varsa... o zaman muhtemelen RenderAction
kullanmalısınız.
Haber denetleyicisi haber nesneler sorumlu var. Ana Sayfa koymak için en son haberleri ile bir blok kılabilecek Blok bir eylem, ben yarattım. Bu mükemmel bir örnek, RenderAction için benim görüşüme göre, bir.
Html.Kısmi vs Html.RenderPartial & Htm...
boş modeli ile renderpartial yanlış tü...
Html.() RenderPartial jiletle sözdizim...
Ne fark (varsa) Html arasında.Kısmi(gö...
Html.Bana garip aşırı yük hata veren R...