Bir önceki makalemizde HTML encode ve decode işlemlerini incelemiştik. Örneğimizde HTML tagları kullanılmış string ifade olduğu gibi görünmekteydi. Şimdi Controller’dan html taglarıyla gönderilmiş verilerimizi HTML kodlarını çalıştıracak şekilde nasıl göstereceğimizi inceleyelim.
Yeni bir Asp.Net MVC 3 (Empty) Web Applicatoin oluşturalım ve HomeController isminde Controller’ımızı ekleyelim. HomeController’ın Index() view’ını oluşturalım ve kodunu şu şekilde düzenleyelim.
Index.cshtml
- @{
- Layout = null;
- }
- <html>
- <head>
- <title>Index</title>
- </head>
- <body>
- <div>
- @{ string isim = "<b><i>Veysel Uğur KIZMAZ</i></b>";}
- @isim
- </div>
- </body>
- </html>
Projemizi çalıştıralm.
Göründüğü üzere yazdığımız metin olduğu gibi ekranda göründü. Şimdi HTML kodlarının çalışmasını sağlayalım.
Index.cshtml
- @{
- Layout = null;
- }
- <html>
- <head>
- <title>Index</title>
- </head>
- <body>
- <div>
- @{ string isim = "<b><i>Veysel Uğur KIZMAZ</i></b>";}
- @isim
- <br />
- @Html.Raw(isim)
- </div>
- </body>
- </html>
Html.Raw methodu ile parametrede verdiğimiz HTML ifadesini render edip ekranda HTML ifadesinin sonucunu göstermektedir.
Şimdi, bir önceki makalemizdeki örneğimize geri dönelim ve HTML olarak gönderdiğimiz değerleri ekranda render edilmiş şekilde çalıştıralım. Öncelikle örneğimizi yeniden hatırlayalım.
HomeController.cs
- public ActionResult Index()
- {
- string baslik = "<p><b><i>Veysel Uğur KIZMAZ</i></b></p>";
- string htmlBaslik = HttpUtility.HtmlEncode(baslik);
- string htmlBaslik2 = HttpUtility.HtmlDecode(htmlBaslik);
- ViewBag.Baslik = baslik;
- ViewBag.HtmlBaslik = htmlBaslik;
- ViewBag.HtmlBaslik2 = htmlBaslik2;
- return View();
- }
Index.xshtml
- @{
- Layout = null;
- }
- <html>
- <head>
- <title>Index</title>
- </head>
- <body>
- <div>
- Baslik : @ViewBag.Baslik
- </div>
- <div>
- Html Baslik : @ViewBag.HtmlBaslik
- </div>
- <div>
- Html Baslik2 : @ViewBag.HtmlBaslik2
- </div>
- </body>
- </html>
Projemizi çalıştıralım.
Şimdi kodumuza Html.Raw methodlarını ekleyelim.
Index.cshtml
- @{
- Layout = null;
- }
- <html>
- <head>
- <title>Index</title>
- </head>
- <body>
- <div>
- Baslik : @Html.Raw(ViewBag.Baslik)
- </div>
- <div>
- Html Baslik : @Html.Raw(ViewBag.HtmlBaslik)
- </div>
- <div>
- Html Baslik2 : @Html.Raw(ViewBag.HtmlBaslik2)
- </div>
- </body>
- </html>
Projemizi çalıştıralım.
Dikkat edin, HTML taglarıyla yazılmış veriler render edildi, fakat HTML taglarının encode edilmiş hali, HTML taglarına sahip olmadığı için render edilmedi ve olduğu gibi ekranda gösterildi.
Veysel Uğur KIZMAZ