Veysel Uğur KIZMAZ

Asp.Net MVC HTML Encode ve Decode İşlemleri

14.01.2012Okunma Sayısı: 24260Kategori: ASP.NET MVC

 Bu makalemizde Asp.NET’te HttpUtility sınıfının Encode ve Decode methodlarını inceleyeceğiz.

HttpUtility sınıfı, client tarafından yapılan isteğe karşı gönderilen verinin encode ve decode edilme işlemlerini gerçekleştirmektedir. Bazı durumlarda HTML karakter kodlamasında oluşan sıkıntıları gidermek için kullanılmaktadır.
Bu sınıfı incelemek için Asp.Net MVC 3 (Empty) Web Application oluşturalım ve bu uygulamamıza HomeController isminde bir Controller ekleyelim. HomeController’ın Index methodunu aşağıdaki gibi düzenleyelim.
 
HomeController.cs
        public ActionResult Index()
        {
            string baslik = "<p><b><i>Veysel Uğur KIZMAZ</i></b></p>";
            string htmlBaslik = HttpUtility.HtmlEncode(baslik);
 
            return View();
        }
 
htmlBaslik değişkenimizde, baslik değişkenimizin encode edilmiş hali gelecektir. return View() satırına breakpoint koyup htmlBaslik değişkenimizin değerini inceleyelim.
Göründüğü gibi, <p>,<b>,<i> blokları HTML encode edilmiş şekilde görünmektedir.
Şimdi örneğimizi biraz geliştirelim. Önce string ifademizi encode işleminden geçirelim. Sonra encode edilmiş verimizi tekrar decode edelim ve View’a gönderelim.
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.cshtml
@{
    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.
Göründüğü üzere ilk önce normal stringi ifademiz, ikinci satırda encode edilmiş ifademiz, son satırda ise tekrar decode edilmiş ifademiz yer almaktadır.
 
 
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com