﻿
{"id":2436,"date":"2014-01-23T14:26:02","date_gmt":"2014-01-23T14:26:02","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=2436"},"modified":"2014-01-23T14:27:55","modified_gmt":"2014-01-23T14:27:55","slug":"asp-net-mvc-registerclientscriptblock-metod-mantigi","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/asp-net-mvc-registerclientscriptblock-metod-mantigi\/","title":{"rendered":"Asp.NET MVC &#8211; RegisterClientScriptBlock Metod Mant\u0131\u011f\u0131"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>\u00d6nceki yaz\u0131lar\u0131mdan olan <a href=\"http:\/\/www.gencayyildiz.com\/blog\/asp-net-registerclientscriptblock-metodu\/\" target=\"_blank\">Asp.NET &#8211; RegisterClientScriptBlock Metodu<\/a> ba\u015fl\u0131kl\u0131 yaz\u0131mda Asp.NET Web Forms mimarisinde <em>RegisterClientScriptBlock<\/em> metodunu nas\u0131l kullanaca\u011f\u0131m\u0131zdan bahsetmi\u015ftim.Bu yaz\u0131m\u0131zda ise, bu metodu <strong>varsa ki<\/strong> nas\u0131l kullanaca\u011f\u0131m\u0131z\u0131 g\u00f6sterece\u011fim.Varsa ki diye vurgulayarak s\u00f6yl\u00fcyorum \u00e7\u00fcnk\u00fc ben Asp.NET MVC mimarisinde <em>RegisterClientScriptBlock<\/em> metodunun oldu\u011funu zannetmiyorum(<span style=\"font-size: x-small;\">tabi ki de olabilir, ama ara\u015ft\u0131rmalar\u0131m sonucu \u015fahsen ben bulamad\u0131m<\/span>).Bu y\u00fczden benzer mant\u0131kta bir teknik olarak sizlere Asp.NET MVC&#8217;de ki mant\u0131\u011f\u0131n\u0131 aktaraca\u011f\u0131m.<br \/>\n<!--more--><br \/>\nHer ne kadar bu yaz\u0131y\u0131 okuyorsan\u0131z RegisterClientScriptBlock metodunun ne oldu\u011funu biliyor, \u00fcst\u00fcne Asp.NET MVC&#8217;de ki kullan\u0131m\u0131n\u0131 ara\u015ft\u0131r\u0131yorsunuz demektir.Hal b\u00f6yleyken prensip gere\u011fi elimizdeki elemanlar nedir ne de\u011fildir tekrardan de\u011finelim ve anlatmak istedi\u011fimizi s\u0131f\u0131rdan bilmeyenlerin anlayaca\u011f\u0131 tarzda masaya yat\u0131ral\u0131m.<\/p>\n<p><strong>RegisterClientScriptBlock nedir? neye yarar?<\/strong><br \/>\nAsp.NET Web Forms mimarisinde Client tabanl\u0131 programlama dili olan JavaScript kodlar\u0131n\u0131 Server taraf\u0131nda iste\u011fe ba\u011fl\u0131 bir \u015fekilde \u00e7al\u0131\u015ft\u0131rmam\u0131z\u0131 sa\u011flayan bir metoddur.<\/p>\n<p><strong>Peki Asp.NET MVC&#8217;de ki RegisterClientScriptBlock mant\u0131\u011f\u0131 ne olabilir?<\/strong><br \/>\nAsp.NET MVC&#8217;de Server olarak Controller katman\u0131ndaki s\u0131n\u0131flar\u0131 ve elemanlar\u0131 g\u00f6rebiliriz.Buradaki as\u0131l problem bir Controller&#8217;da iste\u011fe ba\u011fl\u0131 bir \u015fekilde JavaScript kodlar\u0131n\u0131 nas\u0131l \u00fcretebilir ve View katman\u0131nda \u00e7al\u0131\u015ft\u0131rabiliriz..Bu soruya cevap olarak ViewBag, ViewData gibi MVC mimarisinin veri ta\u015f\u0131y\u0131c\u0131lar\u0131 e\u015fli\u011finde View katman\u0131na giderek o veri yap\u0131lar\u0131n\u0131n null olup olmad\u0131klar\u0131n\u0131 kontrol edip sonuca g\u00f6re JavaScript kodlar\u0131 olu\u015fturup olu\u015fturmakt\u0131r.Mant\u0131k budur.<\/p>\n<p>Asl\u0131nda bu y\u00f6ntem ilkel diyebilece\u011fimiz \u00e7ok basit bir yap\u0131ya sahiptir.A\u015fa\u011f\u0131daki kodlar\u0131 inceleyelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    public class HomeController : Controller\r\n    {\r\n        public ActionResult Index()\r\n        {\r\n            ViewBag.Mesaj = &quot;Ho\u015f geldiniz...&quot;;\r\n            return View();\r\n        }\r\n    }\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi &#8220;Home(Controller).cs&#8221; isimli Controller s\u0131n\u0131f\u0131m\u0131z i\u00e7erisinde JavaScript&#8217;le alakal\u0131 kodlar bulunmamaktad\u0131r.Dikkat ederseniz e\u011fer bir tane &#8220;ViewBag.Mesaj&#8221; isimli bir veri ta\u015f\u0131y\u0131c\u0131m\u0131z mevcut.\u015eimdi View katman\u0131m\u0131zdaki &#8220;Index.cshtml&#8221; dosyas\u0131na g\u00f6z atal\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n@if (ViewBag.Mesaj != null)\r\n{\r\n    &lt;script type=&quot;text\/javascript&quot;&gt;\r\n        alert(&quot;@ViewBag.Mesaj&quot;);\r\n    &lt;\/script&gt;\r\n}\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi ViewBag tipindeki veri ta\u015f\u0131y\u0131c\u0131s\u0131n\u0131 kontrol ettikten sonra duruma g\u00f6re JavaScript komutlar\u0131n\u0131 olu\u015fturmu\u015f oluyoruz.Asp.NET Web Forms&#8217;da ki <em>RegisterClientScriptBlock<\/em> metodunun Asp.NET MVC mant\u0131\u011f\u0131n\u0131 da bu \u015fekilde ger\u00e7ekle\u015ftirmi\u015f oluyoruz.<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere..<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar dilerim..<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>\u00d6nceki yaz\u0131lar\u0131mdan olan Asp.NET &#8211; RegisterClientScriptBlock Metodu ba\u015fl\u0131kl\u0131 yaz\u0131mda Asp.NET Web Forms mimarisinde RegisterClientScriptBlock metodunu nas\u0131l kullanaca\u011f\u0131m\u0131zdan bahsetmi\u015ftim.Bu yaz\u0131m\u0131zda ise, bu metodu varsa ki nas\u0131l kullanaca\u011f\u0131m\u0131z\u0131 g\u00f6sterece\u011fim.Varsa ki diye vurgulayarak s\u00f6yl\u00fcyorum \u00e7\u00fcnk\u00fc ben Asp.NET&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,345],"tags":[745,746,265,283,538,552],"class_list":["post-2436","post","type-post","status-publish","format-standard","hentry","category-asp-net-mvc","category-mvc-4-0","tag-asp-net","tag-asp-net-mvc","tag-javascript-2","tag-mvc","tag-registerclientscriptblock","tag-web-forms"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/2436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=2436"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/2436\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=2436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=2436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=2436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}