﻿
{"id":3183,"date":"2015-08-15T23:54:23","date_gmt":"2015-08-15T23:54:23","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=3183"},"modified":"2015-08-15T23:54:59","modified_gmt":"2015-08-15T23:54:59","slug":"asp-net-mvc-tek-formda-birden-fazla-buton-durumlari","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/asp-net-mvc-tek-formda-birden-fazla-buton-durumlari\/","title":{"rendered":"Asp.NET MVC &#8211; Tek Form&#8217;da Birden Fazla Buton Durumlar\u0131"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Asp.NET MVC mimarisinin, Asp.NET Web Forms mimarisinden daha performansl\u0131 ve daha dinamik bir yap\u0131 oldu\u011funu hepimiz biliyoruz.Lakin baz\u0131 durumlar vard\u0131r ki, iki mimari aras\u0131ndaki do\u011frusal farklar\u0131 negatifleyebilir ve Asp.NET Web Forms mimarisindeki kolayl\u0131klar\u0131 arayabiliriz.Bu yaz\u0131m\u0131z\u0131n i\u00e7eri\u011fi bu tarz bir durumdan kaynaklanmaktad\u0131r.Bir Asp.NET MVC mimarisiyle olu\u015fturulan projede tek bir formda birden fazla buton varsa e\u011fer nas\u0131l bir kontrol yapabiliriz? sorusunu sormam bana bu i\u00e7eri\u011fi olu\u015fturtmu\u015ftur.<\/p>\n<p>Evet, biliyorum.Baz\u0131 okurlar\u0131m\u0131z daha yaz\u0131y\u0131 tam te\u015fekk\u00fcll\u00fc okumadan; &#8220;bunda ne var ki&#8221;, &#8220;tetikleyen buton isimlerini kontrol edersin olur biter&#8221; gibisinden yorumda bulunacakt\u0131r.Lakin bu yaz\u0131mda, tek form i\u00e7inde bulunan birden fazla butondan hangisinin hangi Action&#8217;\u0131 tetikleyece\u011fini nas\u0131l belirtebilece\u011fimizi g\u00f6sterece\u011fim.Evet, bunuda farkl\u0131 algoritmik i\u015flemler neticesinde ger\u00e7ekle\u015ftirebiliriz.Ama ben daha programatik ve profesyonel bir teknik g\u00f6sterece\u011fim.Tabi ki de, siz okurlar\u0131m\u0131n ba\u015fta d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcn\u00fc varsayd\u0131\u011f\u0131m basit yap\u0131 hakk\u0131nda da \u00f6rneklendirmeler yapaca\u011f\u0131m.Evet \u015fimdi konumuza ba\u015flayal\u0131m.<\/p>\n<p>\u015eimdi a\u015fa\u011f\u0131daki iki t\u00fcrl\u00fc form yap\u0131s\u0131n\u0131 inceleyiniz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n@using (Html.BeginForm(&quot;&quot;, &quot;&quot;, FormMethod.Post))\r\n{\r\n    &lt;input type=&quot;submit&quot; value=&quot;Buton A&quot; \/&gt;\r\n    &lt;br \/&gt;\r\n    &lt;input type=&quot;submit&quot; value=&quot;Buton B&quot; \/&gt;\r\n}\r\n<\/pre>\n<div id=\"attachment_3184\" style=\"width: 606px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/08\/Asp.NET-MVC-Tek-Formda-Birden-Fazla-Buton-Durumlar\u0131.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3184\" class=\"wp-image-3184 size-full\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/08\/Asp.NET-MVC-Tek-Formda-Birden-Fazla-Buton-Durumlar\u0131.png\" alt=\"Asp.NET MVC - Tek Form'da Birden Fazla Buton Durumlar\u0131\" width=\"596\" height=\"70\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/08\/Asp.NET-MVC-Tek-Formda-Birden-Fazla-Buton-Durumlar\u0131.png 596w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/08\/Asp.NET-MVC-Tek-Formda-Birden-Fazla-Buton-Durumlar\u0131-300x35.png 300w\" sizes=\"auto, (max-width: 596px) 100vw, 596px\" \/><\/a><p id=\"caption-attachment-3184\" class=\"wp-caption-text\">Kaynak G\u00f6r\u00fcnt\u00fcs\u00fc<\/p><\/div>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n@using (Html.BeginForm(&quot;OrnekAction&quot;, &quot;Home&quot;, FormMethod.Post))\r\n{\r\n    &lt;input type=&quot;submit&quot; value=&quot;Buton A&quot; \/&gt;\r\n    &lt;br \/&gt;\r\n    &lt;input type=&quot;submit&quot; value=&quot;Buton B&quot; \/&gt;\r\n}\r\n<\/pre>\n<div id=\"attachment_3188\" style=\"width: 720px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/08\/Asp.NET-MVC-Tek-Formda-Birden-Fazla-Buton-Durumlar\u0131-2.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3188\" class=\"wp-image-3188 size-full\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/08\/Asp.NET-MVC-Tek-Formda-Birden-Fazla-Buton-Durumlar\u0131-2.png\" alt=\"Asp.NET MVC - Tek Form'da Birden Fazla Buton Durumlar\u0131 - 2\" width=\"710\" height=\"77\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/08\/Asp.NET-MVC-Tek-Formda-Birden-Fazla-Buton-Durumlar\u0131-2.png 710w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/08\/Asp.NET-MVC-Tek-Formda-Birden-Fazla-Buton-Durumlar\u0131-2-300x33.png 300w\" sizes=\"auto, (max-width: 710px) 100vw, 710px\" \/><\/a><p id=\"caption-attachment-3188\" class=\"wp-caption-text\">Kaynak G\u00f6r\u00fcnt\u00fcs\u00fc<\/p><\/div>\n<p>Yukar\u0131da iki farkl\u0131 form yap\u0131s\u0131 belirttim ve ikisinin de taray\u0131c\u0131daki kaynak \u00e7\u0131klat\u0131lar\u0131n\u0131n g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fcde payla\u015ft\u0131m.Dikkat ederseniz her iki form yap\u0131s\u0131nda iki adet buton bulunmaktad\u0131r.Lakin iki form aras\u0131ndaki fark, birinin action yolu belirtilmemi\u015fken, di\u011ferine \/Home\/OrnekAction adresi belirtilmi\u015ftir.<\/p>\n<p>E\u011fer action yolu belirtilmeyen form yap\u0131s\u0131nda ki her hangi bir butona t\u0131klan\u0131rsa e\u011fer bo\u015f bir Post &#8211; Back i\u015flemi ger\u00e7ekle\u015fecektir.Action yolu \/Home\/OrnekAction olarak belirtilen formdaki her hangi bir butona t\u0131klarsak e\u011fer &#8220;Home(Controller).cs&#8221; isimli Controller s\u0131n\u0131f\u0131m\u0131zdaki &#8220;OrnekAction&#8221; isimli metodumuz tetiklenecektir.Peki ben bu iki form \u00f6rne\u011finde oldu\u011fu gibi hangi butonun hangi Action&#8217;\u0131 tetikleyece\u011fini nas\u0131l kontrol edebilirim?\u0130\u015fte bu yaz\u0131m\u0131zda bu iki form \u00f6rne\u011fine uygun a\u00e7\u0131klama yapaca\u011f\u0131z.<\/p>\n<p>Bu i\u015flem bir \u00e7ok algoritmik teknikle yap\u0131labilece\u011fi gibi temelde iki pratik teknik ile ger\u00e7ekle\u015ftirilmektedir.\u00d6ncelikle ben yaz\u0131m\u0131z\u0131n ana i\u00e7eri\u011fini olu\u015fturacak olan teknikten yani Attribute olu\u015fturarak \u00e7\u00f6z\u00fcm bulmaktan ba\u015flamay\u0131 istiyorum.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    &#x5B;AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]\r\n    public class CokluButonAttribute : ActionNameSelectorAttribute\r\n    {\r\n        public string Name { get; set; }\r\n        public string Argument { get; set; }\r\n\r\n        public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo)\r\n        {\r\n            var isValidName = false;\r\n            var keyValue = string.Format(&quot;{0}:{1}&quot;, Name, Argument);\r\n            var value = controllerContext.Controller.ValueProvider.GetValue(keyValue);\r\n\r\n            if (value != null)\r\n            {\r\n                controllerContext.Controller.ControllerContext.RouteData.Values&#x5B;Name] = Argument;\r\n                isValidName = true;\r\n            }\r\n\r\n            return isValidName;\r\n        }\r\n    }\r\n<\/pre>\n<p>Yukar\u0131daki &#8220;CokluButonAttribute&#8221; isimli bir Attribute tan\u0131mlam\u0131\u015f olduk.Bu Attribute&#8217;u kullanabilmek i\u00e7in formumuzun buton nesnelerinde a\u015fa\u011f\u0131daki de\u011fi\u015fikli\u011fi yapmam\u0131z gerekmektedir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n@using (Html.BeginForm(&quot;&quot;, &quot;&quot;, FormMethod.Post))\r\n{\r\n    &lt;input type=&quot;submit&quot; value=&quot;Buton A&quot; name=&quot;action:btnA&quot; \/&gt;\r\n    &lt;br \/&gt;\r\n    &lt;input type=&quot;submit&quot; value=&quot;Buton B&quot; name=&quot;action:btnB&quot;\/&gt;\r\n}\r\n<\/pre>\n<p>\u015eimdi buraya kadar ne yapt\u0131k, ne ettik bahsetmekte fayda var.Yukar\u0131da yazm\u0131\u015f oldu\u011fumuz Attribute, bir post i\u015fleminde ilgili tetiklemeyi yapan buton nesnesini tan\u0131mlamam\u0131za yard\u0131mc\u0131 olacakt\u0131r.Bu tan\u0131mlamada kullanaca\u011f\u0131m\u0131z iki Property Attribute&#8217;ta mevcuttur.Bunlar kodlarda g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi Name ve Argument propertyleridir.Formumuzdaki butonlarda yapt\u0131\u011f\u0131m\u0131z g\u00fcncellemeye bakarsan\u0131z e\u011fer, butonlar\u0131n name \u00f6zelli\u011fine verilen (\u00f6rn)&#8221;action:btnA&#8221; komutlar\u0131, Attribute&#8217;umuz da ki Name ve Argument \u00f6zelliklerini kar\u015f\u0131lamaktad\u0131r.Bu sistem \u015f\u00f6yle \u00e7al\u0131\u015facakt\u0131r.E\u011fer bir tetikleme i\u015flemi ger\u00e7ekle\u015firse Attribute&#8217;umuzu devreye sokaca\u011f\u0131z ve Attribute&#8217;ta tan\u0131mlad\u0131\u011f\u0131m\u0131z buton tetikleme yapt\u0131ysa istedi\u011fimiz Action&#8217;\u0131 \u00e7al\u0131\u015ft\u0131raca\u011f\u0131z.<\/p>\n<p>Gelin \u015fimdi bu mant\u0131\u011f\u0131 pratikte uygulayal\u0131m.<br \/>\n&#8220;Home(Controller).cs&#8221; isimli Controller s\u0131n\u0131f\u0131m\u0131za a\u015fa\u011f\u0131daki iki Action metodu ekliyorum.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        &#x5B;HttpPost]\r\n        public ActionResult AAction()\r\n        {\r\n            return View();\r\n        }\r\n\r\n        &#x5B;HttpPost]\r\n        public ActionResult BAction()\r\n        {\r\n            return View();\r\n        }\r\n<\/pre>\n<p>&#8220;btnA&#8221; isimli buton tetiklendi\u011finde &#8220;AAction&#8221;, &#8220;btnB&#8221; isimli buton tetiklendi\u011finde ise &#8220;BAction&#8221; metodlar\u0131m\u0131z\u0131 tetikleyece\u011fiz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        &#x5B;HttpPost]\r\n        &#x5B;CokluButon(Argument = &quot;btnA&quot;, Name = &quot;action&quot;)]\r\n        public ActionResult AAction()\r\n        {\r\n            return RedirectToAction(&quot;Index&quot;);\r\n        }\r\n\r\n        &#x5B;HttpPost]\r\n        &#x5B;CokluButon(Argument = &quot;btnB&quot;, Name = &quot;action&quot;)]\r\n        public ActionResult BAction()\r\n        {\r\n            return RedirectToAction(&quot;Index&quot;);\r\n        }\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi sistemde bir tetiklenme i\u015flemi oldu\u011fu esnada tetiklemeyi yapan buton &#8220;CokluButonAttribute&#8221; isimli Attribute ile kontrol edilecek ve name \u00f6zelli\u011findeki uyan parametrelere g\u00f6re ilgili Action metod \u00e7al\u0131\u015ft\u0131r\u0131lacakt\u0131r.<\/p>\n<p>\u015eimdi bu yap\u0131y\u0131 a\u015fa\u011f\u0131daki videodan g\u00f6rsel bir \u015fekilde nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz.<br \/>\n<iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/KSLrzdumnDY\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>Videoda da g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi Attribute&#8217;umuz cillop gibi \u00e7al\u0131\u015fmaktad\u0131r \ud83d\ude42<\/p>\n<p><strong>Peki bu Attribute ba\u015fka Controller&#8217;da i\u015flev g\u00f6r\u00fcr m\u00fc?<\/strong> diye sorarsan\u0131z e\u011fer bu \u015fekilde pek m\u00fcmk\u00fcn de\u011fildir.\u00dczerinde de\u011fi\u015fiklikler yapmal\u0131 ve gerekli Controller&#8217;a y\u00f6nlendirmeyi sa\u011flamal\u0131s\u0131n\u0131z.Bu i\u015flev yaz\u0131m\u0131z\u0131n i\u00e7eri\u011finden ba\u011f\u0131ms\u0131z oldu\u011fu i\u00e7in \u00f6dev olarak sizlere b\u0131rak\u0131yorum \ud83d\ude42<\/p>\n<p>\u015euana kadar inceledi\u011fimiz durum, yaz\u0131m\u0131z\u0131n yukar\u0131lar\u0131nda verdi\u011fim form \u00f6rnekleri i\u00e7in ge\u00e7erlidir.Yani form ba\u015fka bir Action yoluna action bildirisi yapm\u0131\u015f olsada siz gene istedi\u011finiz butonda istedi\u011finiz Action&#8217;\u0131 tetikletebilirsiniz.Ama burada \u00e7ok dikkatli olman\u0131z gereken bir husus vard\u0131r.E\u011fer formunuzun action&#8217;\u0131nda bir adres varsa e\u011fer, o adres neticesinde tetiklenecek olan Action metodu da ilgili Attribute ile i\u015faretleyip, hangi buton ile \u00e7al\u0131\u015faca\u011f\u0131n\u0131 bildirmelisiniz.Aksi taktirde, formunuz Action edildi\u011finde ilgili Action metod \u00e7al\u0131\u015facakt\u0131r lakin, di\u011fer actionlar\u0131 \u00e7al\u0131\u015ft\u0131racak butonlar tetiklendi\u011finde, Action metodlar\u0131n tetiklenme esnas\u0131nda \u00e7ak\u0131\u015fmas\u0131 y\u00fcz\u00fcnden hatayla kar\u015f\u0131la\u015facaks\u0131n\u0131z.<\/p>\n<p>Bu durumu a\u015fa\u011f\u0131daki gibi g\u00f6rselle\u015ftirmekte fayda var.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n@using (Html.BeginForm(&quot;OrnekAction&quot;, &quot;Home&quot;, FormMethod.Post))\r\n{\r\n    &lt;input type=&quot;submit&quot; value=&quot;Buton A&quot;  name=&quot;action:btnA&quot;\/&gt;\r\n    &lt;br \/&gt;\r\n    &lt;input type=&quot;submit&quot; value=&quot;Buton B&quot; name=&quot;action:btnB&quot; \/&gt;\r\n}\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi action belirtilmi\u015f bir form olu\u015fturduk.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        &#x5B;HttpPost]\r\n        &#x5B;CokluButon(Argument = &quot;btnA&quot;, Name = &quot;action&quot;)]\r\n        public ActionResult OrnekAction(FormCollection frm)\r\n        {\r\n            return View();\r\n        }\r\n\r\n        &#x5B;HttpPost]\r\n        &#x5B;CokluButon(Argument = &quot;btnB&quot;, Name = &quot;action&quot;)]\r\n        public ActionResult BAction()\r\n        {\r\n            return View();\r\n        }\r\n<\/pre>\n<p>Yukar\u0131da bahsetmek istedi\u011fim d\u00fczen bu \u015fekilde kurulmal\u0131d\u0131r.Formu g\u00f6nderdi\u011finiz Action metodu da Attribute ile i\u015faretlemeyi unutmay\u0131n\u0131z&#8230;<\/p>\n<p>\u015eimdi yaz\u0131m\u0131z\u0131n ba\u015flar\u0131nda belirtti\u011fim, siz kullan\u0131c\u0131lar\u0131m\u0131z\u0131n olas\u0131 d\u00fc\u015f\u00fcncesi olan basit i\u015flemimize g\u00f6z atal\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n@using (Html.BeginForm(&quot;OrnekAction&quot;, &quot;Home&quot;, FormMethod.Post))\r\n{\r\n    &lt;input type=&quot;submit&quot; value=&quot;Buton A&quot; name=&quot;btnA&quot;\/&gt;\r\n    &lt;br \/&gt;\r\n    &lt;input type=&quot;submit&quot; value=&quot;Buton B&quot; name=&quot;btnB&quot; \/&gt;\r\n}\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi bir formumuz olsun.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        &#x5B;HttpPost]\r\n        public ActionResult OrnekAction(string btnA, string btnB)\r\n        { \r\n            if (btnA != null)\r\n            {\r\n                \/\/btnA tetiklendiyse bunlar\u0131 yap...\r\n            }\r\n            else if (btnB != null)\r\n            {\r\n                \/\/btnB tetiklendiyse \u015funlar\u0131 yap...\r\n            }\r\n            return View();\r\n        }\r\n<\/pre>\n<p>Tetikleme esnas\u0131nda Action metodumuza verdi\u011fimiz buton isimleriyle birebir benzer parametrelerle hangi butonun tetiklendi\u011fini kontrol edebiliriz.Tetiklenen buton value de\u011ferini d\u00f6necektir.Di\u011feri ise null d\u00f6necektir.<\/p>\n<p>Bu \u015fekilde de tek bir Action i\u00e7inde kontrol yaparak farkl\u0131 i\u015flemleri ger\u00e7ekle\u015ftirebilirsiniz.Tabi ki ben farkl\u0131 i\u015flemleri farkl\u0131 Actionlarda tavsiye ediyorum.<\/p>\n<p>Bir yaz\u0131m\u0131z\u0131nda sonuna gelmi\u015f bulunmaktay\u0131z.<br \/>\nUmar\u0131m bol bol faydalan\u0131rs\u0131n\u0131z.<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar diliyorum.<\/p>\n<p>Kaynak : http:\/\/stackoverflow.com\/questions\/442704\/how-do-you-handle-multiple-submit-buttons-in-asp-net-mvc-framework<\/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>Asp.NET MVC mimarisinin, Asp.NET Web Forms mimarisinden daha performansl\u0131 ve daha dinamik bir yap\u0131 oldu\u011funu hepimiz biliyoruz.Lakin baz\u0131 durumlar vard\u0131r ki, iki mimari aras\u0131ndaki do\u011frusal farklar\u0131 negatifleyebilir ve Asp.NET Web Forms mimarisindeki kolayl\u0131klar\u0131 arayabiliriz.Bu&#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":3014,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,600],"tags":[745,746,313,736,283],"class_list":["post-3183","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-asp-net-mvc","category-asp-net-mvc-5","tag-asp-net","tag-asp-net-mvc","tag-attribute","tag-multi-button","tag-mvc"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3183","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=3183"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3183\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/3014"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=3183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=3183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=3183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}