ASP.NET MVC 3 Razor View Engine’de Html.Raw ve HtmlString

Merhabalar,

ASP.NET MVC 3 Razor View Engine’de bir değişken tanımlayıp, içine bir takım HTML kodları atayıp yazdırmak istediğimizde şifrelenmemiş, temiz bir çıktı bekleriz. Ama Razor, bunu bize sağlamayacaktır. Güvenlik nedeniyle bunu gerçekten isteyip, istemediğimizi ona söylememiz gerekiyor. ASP.NET MVC 3’de bunun için bir helper method(yardımcı metod) gelmiştir.

Örnek:

@{
    var kodlar =      "<p>Ben birinci paragrafım.</p>"
                    + "<p>Ben ikinci paragrafım.</p>"
                    + "<p style=\"color:red; font-weight:bold\">Ben de kırmızı renkli ve kalın yazılmış üçüncü paragrafım.</p>";                    

}

@kodlar

Artı bir işlem kullanmazsak sonuç:

Yardımcı Metod Kullanımı:

Html.Raw(string) şeklindedir.

@{
    var kodlar =      "<p>Ben birinci paragrafım.</p>"
                    + "<p>Ben ikinci paragrafım.</p>"
                    + "<p style=\"color:red; font-weight:bold\">Ben de kırmızı renkli ve kalın yazılmış üçüncü paragrafım.</p>";                    

}

@Html.Raw(kodlar)

Sonuç:

Sınıf olarak Kullanımı:

@{
    var kodlar2 = new HtmlString("<p>Ben birinci paragrafım.</p>"
                                  + "<p>Ben ikinci paragrafım.</p>"
                                  + "<p style=\"color:red; font-weight:bold\">Ben de kırmızı renkli ve kalın yazılmış üçüncü paragrafım.</p>");                  

}

@kodlar2

Html.Raw metodundan tek farkı sınıf olarak kullanılmasıdır.  Değişken atamasında, şifrelenmesini istemediğimiz kodumuzu parametre olarak veriyoruz.

 

Kaynak: http://davidhayden.com/blog/dave/archive/2010/12/27/HtmlR..

Yayınlayan

Yusuf Doru

İstanbul'da yaşıyor. Web ve masaüstü ortamlarında çalışmalar yapıyor. Araştırıyor, geliştiriyor. Kendine ait kişisel blogu var. Her ne kadar .NET dillerine ilgisi olsa da, açık kaynaklı programlama dillerinde de kendini geliştirmeye devam ediyor.

“ASP.NET MVC 3 Razor View Engine’de Html.Raw ve HtmlString” üzerine bir yorum

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir