﻿
{"id":5683,"date":"2017-02-23T16:16:48","date_gmt":"2017-02-23T16:16:48","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=5683"},"modified":"2017-02-23T16:18:09","modified_gmt":"2017-02-23T16:18:09","slug":"asp-net-mvc-include-edilmeyen-propertynin-html-taglarina-bind-edilememesi","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/asp-net-mvc-include-edilmeyen-propertynin-html-taglarina-bind-edilememesi\/","title":{"rendered":"Asp.NET MVC &#8211; Include Edilmeyen Property&#8217;nin HTML Taglar\u0131na Bind Edilememesi"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Makalemiz i\u00e7erik olarak olduk\u00e7a dar bir kapsamda kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131z bir probleme odakl\u0131 anlat\u0131m ve \u00e7\u00f6z\u00fcm i\u00e7erece\u011finden dolay\u0131 anla\u015f\u0131ld\u0131\u011f\u0131 \u00fczere durumu izah eden do\u011fru bir ba\u015fl\u0131k se\u00e7mekte zorland\u0131m do\u011frusu. As\u0131l anlatmak istedi\u011fim, Asp.NET MVC mimarisinde property&#8217;nize html elemanlar\u0131n\u0131 bind edemiyorsan\u0131z, bu durumun olas\u0131 sebeplerinden birisi olan Metadata class&#8217;\u0131yla ilgili i\u00e7eri\u011fi bu makalede bulabileceksiniz.<\/p>\n<p>\u015eimdi konuyu biraz ge\u00e7mi\u015ften ele alal\u0131m.<\/p>\n<p>Hat\u0131rlarsan\u0131z e\u011fer y\u0131llar \u00f6nce <a href=\"http:\/\/www.gencayyildiz.com\/blog\/mvc-validation\/\" target=\"_blank\">MVC Validation<\/a> ba\u015fl\u0131kl\u0131 makalemi yazm\u0131\u015ft\u0131m. \u0130lgili makale i\u00e7erisinde, MVC yap\u0131lanmalar\u0131nda kulland\u0131\u011f\u0131m\u0131z modellere validasyon tan\u0131mlayabilmek i\u00e7in MetadataType attribute&#8217;unu kullan\u0131yor ve bu niteli\u011fe verdi\u011fimiz s\u0131n\u0131fta modelimizin validasyonlar\u0131n\u0131 bar\u0131nd\u0131r\u0131yorduk.<\/p>\n<p>\u0130\u015fte bu validasyon yap\u0131land\u0131rma \u00e7al\u0131\u015fmalar\u0131 s\u0131ras\u0131nda g\u00f6z\u00fcm\u00fczden ka\u00e7an baz\u0131 ufak noktalar nice hatalara ve zorluklara sebep do\u011furmaktad\u0131r.<\/p>\n<p>\u015eimdi sizlere bir \u00f6rnek olay \u00fczerinden Model i\u00e7erisinde bulunan bir propertynin neden html taglar\u0131na bind edilmedi\u011fini izahate \u00e7al\u0131\u015faca\u011f\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    &#x5B;Bind(Include = &quot;Id, Adi, Soyadi, Memleketi&quot;)]\r\n    &#x5B;MetadataType(typeof(MetadataPersonel))]\r\n    public class Personel\r\n    {\r\n        public int Id { get; set; }\r\n        public string Adi { get; set; }\r\n        public string Soyadi { get; set; }\r\n        public string Memleketi { get; set; }\r\n        public string Meslegi { get; set; }\r\n    }\r\n<\/pre>\n<p>Yukar\u0131da &#8220;Personel&#8221; isminde bir model olu\u015fturmu\u015f oldum. Dikkat ederseniz modelimiz &#8220;Bind&#8221; attribute&#8217;u ile i\u015faretlenerek &#8216;Id&#8217;, &#8216;Adi&#8217;, &#8216;Soyadi&#8217; ve &#8216;Memleketi&#8217; propertyleri include edilerek validasyon i\u015flemine tabi tutulacaklar\u0131 bildirilmi\u015f. Ama dikkat ! &#8216;Meslegi&#8217; propertysi bind edilmemektedir. Birazdan bu fark \u00fczerine &#8216;Meslegi&#8217; propertysinde html taglar\u0131na bind s\u0131k\u0131nt\u0131s\u0131 ya\u015fayaca\u011f\u0131z.<\/p>\n<p>&#8220;MetadataPersonel&#8221; isimli Metadata class&#8217;\u0131m\u0131z\u0131n i\u00e7eri\u011fine de g\u00f6z atmam\u0131z gerekirse e\u011fer;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    public class MetadataPersonel\r\n    {\r\n        public int Id { get; set; }\r\n        &#x5B;Required(ErrorMessage = &quot;L\u00fctfen ad\u0131n\u0131z\u0131 bo\u015f ge\u00e7meyiniz.&quot;)]\r\n        public string Adi { get; set; }\r\n        &#x5B;Required(ErrorMessage = &quot;L\u00fctfen soyad\u0131n\u0131z\u0131 bo\u015f ge\u00e7meyiniz.&quot;)]\r\n        public string Soyadi { get; set; }\r\n        &#x5B;Required(ErrorMessage = &quot;L\u00fctfen memleketinizi bo\u015f ge\u00e7meyiniz.&quot;)]\r\n        public string Memleketi { get; set; }\r\n    }\r\n<\/pre>\n<p>g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere bind edilen t\u00fcm propertylerimize \u00f6rnek validasyonlar ger\u00e7ekle\u015ftirilmi\u015f ama velakin &#8216;Meslegi&#8217; propertysi buraya da eklenmemi\u015ftir.<\/p>\n<p>\u015eimdi s\u0131ra bir Post s\u00fcrecinde bu modelin s\u00fcre\u00e7teki davran\u0131\u015flar\u0131n\u0131 izlemeye geldi.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n@model WebApplication14.Models.Personel\r\n\r\n@using (Html.BeginForm(&quot;OrnekPost&quot;, &quot;Home&quot;, FormMethod.Post))\r\n{\r\n    @Html.TextBoxFor(t =&gt; t.Adi)\r\n    &lt;br \/&gt;\r\n    @Html.TextBoxFor(t =&gt; t.Soyadi)\r\n    &lt;br \/&gt;\r\n    @Html.TextBoxFor(t =&gt; t.Memleketi)\r\n    &lt;br \/&gt;\r\n    @Html.TextBoxFor(t =&gt; t.Meslegi)\r\n    &lt;br \/&gt;\r\n    &lt;input type=&quot;submit&quot; value=&quot;Post&quot; \/&gt;\r\n}\r\n<\/pre>\n<p>Dikkat ederseniz e\u011fer modelimizin t\u00fcm propertyleri bir TextBox&#8217;a bind edilmi\u015f. Bakal\u0131m butona t\u0131kland\u0131\u011f\u0131nda nas\u0131l bir Model post edilmektedir.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/02\/Asp.NET-MVC-Metadata-Class\u0131na-Eklenmeyen-Propertynin-HTML-Taglar\u0131na-Bind-Edilememesi.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/02\/Asp.NET-MVC-Metadata-Class\u0131na-Eklenmeyen-Propertynin-HTML-Taglar\u0131na-Bind-Edilememesi.png\" alt=\"Asp.NET MVC - Metadata Class&#039;\u0131na Eklenmeyen Property&#039;nin HTML Taglar\u0131na Bind Edilememesi\" width=\"821\" height=\"160\" class=\"aligncenter size-full wp-image-5691\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/02\/Asp.NET-MVC-Metadata-Class\u0131na-Eklenmeyen-Propertynin-HTML-Taglar\u0131na-Bind-Edilememesi.png 821w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/02\/Asp.NET-MVC-Metadata-Class\u0131na-Eklenmeyen-Propertynin-HTML-Taglar\u0131na-Bind-Edilememesi-300x58.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/02\/Asp.NET-MVC-Metadata-Class\u0131na-Eklenmeyen-Propertynin-HTML-Taglar\u0131na-Bind-Edilememesi-768x150.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><\/a><\/p>\n<p>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere &#8216;Meslegi&#8217; propertysi TextBox&#8217;a bind edilmemi\u015f. O y\u00fczden ilgili TextBox&#8217;a yaz\u0131lan de\u011fer property taraf\u0131ndan ta\u015f\u0131namamaktad\u0131r.<\/p>\n<p><strong>Eee! Peki bunun sebebi nedir?<\/strong> sorusuna yan\u0131t\u0131m\u0131z\u0131 asl\u0131nda makalemizin gidi\u015fat\u0131nda vermi\u015f bulunmaktay\u0131z. \u0130lgili propertynin bind edilmemi\u015f olmas\u0131 bu duruma sebebiyet vermektedir.<\/p>\n<p>Yapmam\u0131z gereken, kullanmasakta ilgili propertyi bind etmeli ve Meta data class\u0131na eklememiz gerekmektedir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    &#x5B;Bind(Include = &quot;Id, Adi, Soyadi, Memleketi, Meslegi&quot;)]\r\n    &#x5B;MetadataType(typeof(MetadataPersonel))]\r\n    public class Personel\r\n    {\r\n        public int Id { get; set; }\r\n        public string Adi { get; set; }\r\n        public string Soyadi { get; set; }\r\n        public string Memleketi { get; set; }\r\n        public string Meslegi { get; set; }\r\n    }\r\n<\/pre>\n<p>Asl\u0131nda yapm\u0131\u015f oldu\u011fumuz bu bind sorunun \u00e7\u00f6z\u00fcm\u00fc i\u00e7in yeterlidir. Lakin ileriye d\u00f6n\u00fck bir yat\u0131r\u0131m olmas\u0131, bir daha u\u011fra\u015fmaman\u0131z i\u00e7in Meta data class&#8217;\u0131na da propertyi eklemenizi tavsiye ederim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    public class MetadataPersonel\r\n    {\r\n        public int Id { get; set; }\r\n        &#x5B;Required(ErrorMessage = &quot;L\u00fctfen ad\u0131n\u0131z\u0131 bo\u015f ge\u00e7meyiniz.&quot;)]\r\n        public string Adi { get; set; }\r\n        &#x5B;Required(ErrorMessage = &quot;L\u00fctfen soyad\u0131n\u0131z\u0131 bo\u015f ge\u00e7meyiniz.&quot;)]\r\n        public string Soyadi { get; set; }\r\n        &#x5B;Required(ErrorMessage = &quot;L\u00fctfen memleketinizi bo\u015f ge\u00e7meyiniz.&quot;)]\r\n        public string Memleketi { get; set; }\r\n        public string Meslegi { get; set; }\r\n    }\r\n<\/pre>\n<p>Bu i\u015flemden sonra post i\u015flemine g\u00f6z atarsak e\u011fer;<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/02\/Asp.NET-MVC-Metadata-Class\u0131na-Eklenmeyen-Propertynin-HTML-Taglar\u0131na-Bind-Edilememesi-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/02\/Asp.NET-MVC-Metadata-Class\u0131na-Eklenmeyen-Propertynin-HTML-Taglar\u0131na-Bind-Edilememesi-1.png\" alt=\"Asp.NET MVC - Metadata Class&#039;\u0131na Eklenmeyen Property&#039;nin HTML Taglar\u0131na Bind Edilememesi\" width=\"594\" height=\"149\" class=\"aligncenter size-full wp-image-5693\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/02\/Asp.NET-MVC-Metadata-Class\u0131na-Eklenmeyen-Propertynin-HTML-Taglar\u0131na-Bind-Edilememesi-1.png 594w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/02\/Asp.NET-MVC-Metadata-Class\u0131na-Eklenmeyen-Propertynin-HTML-Taglar\u0131na-Bind-Edilememesi-1-300x75.png 300w\" sizes=\"auto, (max-width: 594px) 100vw, 594px\" \/><\/a><br \/>\nEvet&#8230; G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere g\u00f6z ard\u0131 etti\u011fimiz bir i\u015flem neticesinde bizleri yorabilecek bir sorunla kar\u015f\u0131la\u015fmaktay\u0131z. Haliyle \u015fu \u00e7\u00f6z\u00fcm\u00fc ke\u015ffedene kadar akla karay\u0131 se\u00e7ebilirsiniz \ud83d\ude42 <\/p>\n<p>O y\u00fczden daima bu konuda temkinli olmakta fayda var \ud83d\ude09<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/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>Merhaba, Makalemiz i\u00e7erik olarak olduk\u00e7a dar bir kapsamda kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131z bir probleme odakl\u0131 anlat\u0131m ve \u00e7\u00f6z\u00fcm i\u00e7erece\u011finden dolay\u0131 anla\u015f\u0131ld\u0131\u011f\u0131 \u00fczere durumu izah eden do\u011fru bir ba\u015fl\u0131k se\u00e7mekte zorland\u0131m do\u011frusu. As\u0131l anlatmak istedi\u011fim, Asp.NET MVC mimarisinde&#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":3453,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[746,1632,1630,1629,283,1633,70,1631],"class_list":["post-5683","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-asp-net-mvc","tag-asp-net-mvc","tag-bind","tag-metadata","tag-metadatatype","tag-mvc","tag-mvc-property-not-bind","tag-property","tag-property-not-bind"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/5683","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=5683"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/5683\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/3453"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=5683"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=5683"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=5683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}