﻿
{"id":2455,"date":"2014-01-28T23:18:36","date_gmt":"2014-01-28T23:18:36","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=2455"},"modified":"2014-01-28T23:24:49","modified_gmt":"2014-01-28T23:24:49","slug":"asp-net-mvc-url-routing-semasini-fiziksel-kabuklama","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/asp-net-mvc-url-routing-semasini-fiziksel-kabuklama\/","title":{"rendered":"Asp.NET MVC &#8211; URL Routing \u015eemas\u0131n\u0131 Fiziksel Kabuklama"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Asp.NET MVC mimarisinin en g\u00f6zde yanlar\u0131ndan birisi haliyle URL yap\u0131lar\u0131n\u0131n okunabilirli\u011fi(<span style=\"font-size: x-small;\">Arama Motorlar\u0131 A\u00e7\u0131s\u0131ndan daha etkili &#8211; SEO<\/span>) ve QueryString de\u011ferlerinin URL Routing yap\u0131land\u0131rmas\u0131yla daha nizaml\u0131 bir \u015fekilde sayfalar aras\u0131nda ta\u015f\u0131nmas\u0131d\u0131r.MVC mimarisinde yaz\u0131l\u0131mc\u0131lar esnek bir \u015fekilde olu\u015fturulan her sayfan\u0131n URL \u015femas\u0131n\u0131 yap\u0131land\u0131rmas\u0131na m\u00fcdahale edebiliyor ve URL&#8217;de ta\u015f\u0131nacak de\u011ferlerin de\u011fi\u015fken isimlerini \u015femalarda anlaml\u0131 bir \u015fekilde belirleyebiliyor.Bu \u00f6zelliklere dayanarak bu makalenin ismini bu \u015fekilde koymaya karar verdim.Bunun sebebi, MVC projelerinde \u00fcretilen linkler internet taray\u0131c\u0131lar\u0131nda URL \u015femalar\u0131ndakinin modeli olarak g\u00f6steriliyor.Haliyle Controller ve Action isimleri ister istemez yerini belli ediyor ve linkin URL \u015femas\u0131da bir hayli anla\u015f\u0131l\u0131yor.B\u00f6yle bir durumda kal\u0131p her hangi bir sakatl\u0131\u011fa maruz kalmamak i\u00e7in linkleri bir insan i\u00e7in daha okunakl\u0131 lakin bir a\u00e7\u0131k bekleyen \u00e7akal i\u00e7in kapal\u0131 kutu olarak yap\u0131land\u0131rabiliyoruz.Bu yap\u0131land\u0131rma URL \u015femas\u0131nda bir de\u011fi\u015fiklik ger\u00e7ekle\u015ftirmiyor ama o \u015femay\u0131 fiziksel olarak ba\u015fka bir kabu\u011fa b\u00fcr\u00fcnd\u00fcr\u00fcyor.Tabi ki de mant\u0131ksal olarak olay i\u015fleyi\u015fi yine olmas\u0131 gerekti\u011fi gibi devam ediyor.\u015eimdi gelin bu i\u015flemin teknik olarak nas\u0131l ger\u00e7ekle\u015ftirildi\u011fini inceleyelim.<br \/>\n<!--more--><br \/>\nVarsayal\u0131m ki, &#8220;Home(Controller).cs&#8221; isimli bir Controller s\u0131n\u0131f\u0131m\u0131z mevcut ve i\u00e7erisinde &#8220;Ornek&#8221; ve &#8220;Index&#8221; isimli iki Action metodumuz bulunsun.<\/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            return View();\r\n        }\r\n        public ActionResult Ornek(int id, string adi)\r\n        {\r\n            return View();\r\n        }\r\n    }\r\n<\/pre>\n<p>\u015eimdi &#8220;Ornek&#8221; Action metoduna \u00f6zel URL Routing \u015femas\u0131 olu\u015ftural\u0131m.(<span style=\"font-size: x-small;\">E\u011fer URL Routing \u015femalar\u0131n\u0131 olu\u015fturmay\u0131 bilmiyorsan\u0131z e\u011fer \u00f6ncelikle <a href=\"http:\/\/www.gencayyildiz.com\/blog\/mvc-4-0-url-routing-yapisi\/\" target=\"_blank\">MVC 4.0 URL Routing Yap\u0131s\u0131<\/a> ba\u015fl\u0131kl\u0131 yaz\u0131y\u0131 okuman\u0131z\u0131 tavsiye ediyorum.<\/span>)<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            routes.MapRoute(\r\n                name: &quot;Default&quot;,\r\n                url: &quot;{controller}\/{action}\/{id}&quot;,\r\n                defaults: new { controller = &quot;Home&quot;, action = &quot;Index&quot;, id = UrlParameter.Optional }\r\n            );\r\n\r\n            routes.MapRoute(\r\n                name: &quot;Ornek&quot;,\r\n                url: &quot;{controller}\/{action}\/{id}\/{adi}&quot;,\r\n                defaults: new { controller = &quot;Home&quot;, action = &quot;Index&quot;, id = UrlParameter.Optional, adi = UrlParameter.Optional }\r\n            );\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi &#8220;Default&#8221; isimli route varsay\u0131lan olarak parametresiz her Action i\u00e7in \u00e7al\u0131\u015facakt\u0131r.Lakin &#8220;Ornek&#8221; isimli routeu incelersek e\u011fer &#8220;id&#8221; ve &#8220;adi&#8221; parameresi olan Action&#8217;lar bu \u015femaya y\u00f6nlenecektir.<\/p>\n<p>Bu makalede odaklanmam\u0131z gereken \u015fema &#8220;Ornek&#8221; isimli oland\u0131r.\u015eimdi projeyi \u00e7al\u0131\u015ft\u0131r\u0131p &#8220;Ornek&#8221; Action&#8217;\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131rsak e\u011fer (<span style=\"font-size: x-small;\">\u00d6rn id = 2, adi = Gen\u00e7ay parametre de\u011ferleriyle<\/span>) URL \u015femas\u0131n\u0131n nas\u0131l olu\u015ftu\u011funu inceleyelim.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/01\/UrlRouting.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/01\/UrlRouting.png\" alt=\"UrlRouting\" width=\"285\" height=\"36\" class=\"aligncenter size-full wp-image-2460\" \/><\/a><br \/>\nG\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi bu URL yap\u0131s\u0131nda Controller ve Action bariz bir \u015fekilde belli olmaktad\u0131r.\u015eimdi bu \u015femay\u0131 fiziksel olarak nitelendirip neticeyi birde \u00f6yle g\u00f6zlemleyelim.Tek yapmam\u0131z gereken &#8220;Ornek&#8221; isimli URL Routing \u015femam\u0131z\u0131 a\u015fa\u011f\u0131daki gibi ayarlamak.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            routes.MapRoute(\r\n                name: &quot;Index&quot;,\r\n                url: &quot;Ornek\/{id}\/{adi}&quot;,\r\n                defaults: new { controller = &quot;Home&quot;, action = &quot;Ornek&quot;, id = UrlParameter.Optional, adi = UrlParameter.Optional }\r\n            );\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi &#8220;Ornek&#8221; routeunda &#8220;url&#8221; ve &#8220;default&#8221; parametrelerinde de\u011fi\u015fiklikler yapt\u0131k.&#8221;url&#8221; parametresinde yap\u0131lan de\u011fi\u015fiklikte fiziksel olarak URL&#8217;i belli etmeyecek kabu\u011fumuzu haz\u0131rlam\u0131\u015f oluyoruz.&#8221;default&#8221; parametresinde ise, bu kabu\u011fun &#8220;Home&#8221; Controller&#8217;\u0131n da ki &#8220;Ornek&#8221; isimli Action metotda \u00e7al\u0131\u015faca\u011f\u0131n\u0131 belirtmi\u015f oluyoruz.Yani&#8230;Mant\u0131ksal olarak ayn\u0131 Controller ve Action&#8217;da \u00e7al\u0131\u015facak bu URL \u015femas\u0131n\u0131 fiziksel olarak bir kabu\u011fa b\u00fcr\u00fcm\u00fc\u015f olduk.Projeyi derleyip \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m\u0131z zaman &#8220;Ornek&#8221; Action&#8217;\u0131n\u0131 \u00e7a\u011f\u0131rd\u0131\u011f\u0131m\u0131zda internet taray\u0131c\u0131s\u0131nda a\u015fa\u011f\u0131daki gibi bir linkle kar\u015f\u0131la\u015faca\u011f\u0131z.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/01\/UrlRouting2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2014\/01\/UrlRouting2.png\" alt=\"UrlRouting2\" width=\"252\" height=\"41\" class=\"aligncenter size-full wp-image-2461\" \/><\/a><\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi yukar\u0131daki linkin &#8220;Home(Controller).cs&#8221; isimli Controller s\u0131n\u0131f\u0131nda bulunan &#8220;Ornek&#8221; isimli Action metodu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131 anlamak pekte m\u00fcmk\u00fcn olmasa gerek. \ud83d\ude42<\/p>\n<p>Umar\u0131m fiziksel kabuklama diye nitelendirdi\u011fim bu yaz\u0131y\u0131 sizlere anlatmak istedi\u011fim \u015fekilde aktarabilmi\u015fimdir.<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar dilerim&#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>Asp.NET MVC mimarisinin en g\u00f6zde yanlar\u0131ndan birisi haliyle URL yap\u0131lar\u0131n\u0131n okunabilirli\u011fi(Arama Motorlar\u0131 A\u00e7\u0131s\u0131ndan daha etkili &#8211; SEO) ve QueryString de\u011ferlerinin URL Routing yap\u0131land\u0131rmas\u0131yla daha nizaml\u0131 bir \u015fekilde sayfalar aras\u0131nda ta\u015f\u0131nmas\u0131d\u0131r.MVC mimarisinde yaz\u0131l\u0131mc\u0131lar esnek bir&#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":[746,555,283,402,255],"class_list":["post-2455","post","type-post","status-publish","format-standard","hentry","category-asp-net-mvc","category-mvc-4-0","tag-asp-net-mvc","tag-kabuklama","tag-mvc","tag-seo","tag-url-routing"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/2455","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=2455"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/2455\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=2455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=2455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=2455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}