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)
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..