Html.Partial, Html.RenderPartial, Html.Action, Html.RenderAction aralarındaki farklar nelerdir?

EceKoc (834) 10 yıl önce sordu

Mvc Razor'da 

     Html.Partial ve Html.RenderPartial

     Html.Action ve Html.RenderAction 

arasındaki farklar nelerdir?

Toplam 1 cevap


EceKoc (834) 10 yıl önce cevapladı

Html.Partial metodu

Html.Partial metodu, partial view'i Html-encoded string olarak çözümler. Html.Partial metodunun çıktısı string türünde değer döndürdüğü için değişkende saklanabilir. 

Kullanımı kolaydır ve Action oluşturmaya gerek yoktur. 

Html.Partial metodu, sayfada görüntülemek istediğiniz veriler metodun çağırıldığı view ile birlikte geliyorsa kullanışlıdır. Örneğin, bir blog yazısında yorumları göstermek için Html.Partial metodu kullanılmalıdır çünkü blog yazısının yorumları, yazıyla birlikte ViewModel'in içerisinde gelmiş olacaktır.
Kullanım örneği: 

@Html.Partial("_Yorumlar")

 

Html.RenderPartial metodu

Html.RenderPartial metodu, çağırıldığı sayfanın TextWriter'ını kullanır. Yani doğrudan Http response stream'e yazılır. Bu yüzden Html.Partial metodundan daha hızlıdır. 

Html.RenderPartial metodu void döndürür. Kullanımı kolaydır ve Action oluşturmaya gerek yoktur. 

Html.RenderPartial metodu, sayfada görüntülemek istediğiniz veriler metodu çağırdığınız View ile birlikte geliyorsa kullanışlıdır. Örneğin, bir blog yazısında yorumları göstermek için Html.RenderPartial metodu kullanılmalıdır çünkü blog yazısının yorumları, yazıyla birlikte ViewModel'in içerisinde gelmiş olacaktır.
Kullanım örneği: 

@{Html.RenderPartial("_Yorumlar");}

 

Html.Action metodu

Html.Action metodu, partial view'i Html-encoded string olarak çözümler. 

Html.Action metodunda, partial view'i yorumlamak için "child action" oluşturmamız gerekir. Html.Action metodunun çıktısı string türünde değer döndürdüğü için değişkende saklanabilir. 

Html.Action metodu, sayfada görüntülemek istediğiniz veriler metodun çağırıldığı view'dan bağımsız ise kullanışlıdır. Örneğin, bir blog yazısında her sayfada kategori listesini göstermek istiyorsak Html.Action metodu kullanılmalıdır çünkü kategori listesinin modeli diğerlerinden farklı olacaktır.
Kullanım örneği:

@{Html.Action("Kategori","Home");}

Ayrıca partial view'i önbellekte tutmak istiyorsanız Html.Action metodu en iyi çözüm olacaktır.

 

Html.RenderAction metodu

Html.RenderAction metodu, çağırıldığı sayfanın TextWriter'ını kullanır. Yani doğrudan Http response stream'e yazılır. Bu yüzden Html.Action metodundan daha hızlıdır. 

Html.RenderAction metodunda, partial view'i yorumlamak için "child action" oluşturmamız gerekir. 

Html.RenderAction metodu, sayfada görüntülemek istediğiniz veriler metodun çağırıldığı view'dan bağımsız ise kullanışlıdır. Örneğin, bir blog yazısında her sayfada kategori listesini göstermek istiyorsak Html.RenderAction metodu kullanılmalıdır çünkü kategori listesinin modeli diğerlerinden farklı olacaktır.
Kullanım örneği: 

@{Html.RenderAction("Kategori", "Home");}

Partial view'i önbellekte tutmak istiyorsanız Html.RenderAction metodu en iyi çözüm olacaktır.