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

1

Mvc Razor'da 

     Html.Partial ve Html.RenderPartial

     Html.Action ve Html.RenderAction 

arasındaki farklar nelerdir?

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

    Toplam 1 Cevap


    0

    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.

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

      üyelik gerektirir

      Cevap yazabilmek için üye girişi yapmalısınız.

      Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
      uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol