Cevap Geçmişi
21.06.16 11:38
Bunun için routing (yönlendirme) kullanılıyor. Routing
yönteminde, yapılan isteklerdeki web site adresinden sonra gelen kısmın
(path) yapısına bakarak uygun sayfalara yönlendirme yapılıyor. Örneğin yapılan istek: http://cevapsitesi.com/urunler/kategori/1 ise, bu adresteki /urunler/kategori/1 kısmına bakılıyor. Bu
yönlendirmeler Global.asax dosyası içindeki ApplicationStart olayının
içinde tanımlanacak. Global.asax dosyası yoksa Visual Studio'dan
oluşturabilirsin. Dosya oluştuğunda zaten Application_Start olayını
karşılayan yordamı göreceksin. Tanımlamalar bunun içinde yapılacak. Yönlendirmeler için System.Web.Routing isim alanı kullanılıyor. Bunu Global.asax dosyanın üstündeki import bölümünde şöyle bildirmelisin. <%@ import namespace="System.Web.Routing" %> Arkasından Application_Start olayı içinde yönlendirmelerini RouteTable.Routes statik kolleksiyonununa eklemelisin. RouteCollection sınıfından olan Routes özelliğinin MapPageRoute yöntemiyle yönlendirme ekleniyor. Bunun bir kaç kullanımı var. En temel olanı şöyle: MapPageRoute(Yönlendirme Adı, Yönlendirme Yolu ve parametreler, URL'nin yönlendirileceği gerçek sayfa) Örneğin: void Application_Start(object sender, EventArgs e) { RouteCollection routes = RouteTable.Routes;
routes.MapPageRoute("Ürün Görüntüleme", "Urunler/{KategoriAdi}/{*UrunKimligi}", "~/UrunGoruntule.aspx"); routes.MapPageRoute("Sayfalar", "Sayfalar/{SayfaAdi}", "~/Sayfalar.aspx"); } Bu örnekte iki tane yönlendirme yapılıyor. Süslü parantez içinde verilenler parametreler. UrunKimligi parametresinin yanındaki yıldız bu parametrenin kullanılmayabileceğini bildiriyor. Son parametre ise yönlendirmenin yapılacağı asıl sayfa. Belirtilen bir yönlendirme ile eşleşen bir istek yapıldığında ilgili sayfa yükleniyor. Örneğin birinci yönlendirme ile şunlar eşleşebilir. http://example.com/Urunler/Elbise/4 http://example.com/Urunler/123/BirMetin http://example.com/Urunler/Pantolon http://example.com/Urunler/123 Görüldüğü gibi parametrelerin veri tipi yok, deseni, (Urunler/ metninden sonra bir metin eğer varsa sonra bir / ve bir metin) uysun yeter. Bu bilgiler yönlendirilen sayfaya aynı QueryString (adres çubuğundaki sorgu dizesi) gibi string veriler olarak gidecek ve tipleriyle QueryString'de olduğu gibi ilgili sayfada uğraşacaksın. Yönlendirilen sayfa içinden Page_Load yordamında (veya başka yerde de olabilir); Bir parametrenin gelip gelmediğini test etmek için (örneğin UrunKimligi): if (Page.RouteData.Values.ContainsKey("UrunKimligi")) { ... } Bir parametrenin değerini almak için: (Örneğin http://example.com/Urunler/Elbise/4 şeklinde gelen bir istekteki ürün kimliği parametresine karşılık gelen 4 değerini) string stringUrunKimligi = Page.RouteData.Values["UrunKimligi"); Belirli bir yönlendirme ile bu sayfaya gelinip gelinmediğini öğrenmek için (örneğin "Ürün Görüntüleme"): if (Page.RouteData.Route == RouteTable.Routes["Ürün Görüntüleme"]) { ... } ifadelerini kullanabilirsin. Bir parametre için değer gelmemişse (üstteki http://example.com/Urunler/Pantolon adresindeki gibi), bu değer için boş bir string alırsın. Bunu da; if (stringUrunKimligi == String.Empty) { ... } şeklinde test edebilirsin.
Ekleyen: cevapsitesi
Değiştiren: canora
Cevap olarak seçen: canora
13.06.16 22:33
Bunun için routing (yönlendirme) kullanılıyor. Routing
yönteminde, yapılan isteklerdeki web site adresinden sonra gelen kısmın
(path) yapısına bakarak uygun sayfalara yönlendirme yapılıyor. Örneğin yapılan istek: http://cevapsitesi.com/urunler/kategori/1 ise, bu adresteki /urunler/kategori/1 kısmına bakılıyor. Bu
yönlendirmeler Global.asax dosyası içindeki ApplicationStart olayının
içinde tanımlanacak. Global.asax dosyası yoksa Visual Studio'dan
oluşturabilirsin. Dosya oluştuğunda zaten Application_Start olayını
karşılayan yordamı göreceksin. Tanımlamalar bunun içinde yapılacak. Yönlendirmeler için System.Web.Routing isim alanı kullanılıyor. Bunu Global.asax dosyanın üstündeki import bölümünde şöyle bildirmelisin. <%@ import namespace="System.Web.Routing" %> Arkasından Application_Start olayı içinde yönlendirmelerini RouteTable.Routes statik kolleksiyonununa eklemelisin. RouteCollection sınıfından olan Routes özelliğinin MapPageRoute yöntemiyle yönlendirme ekleniyor. Bunun bir kaç kullanımı var. En temel olanı şöyle: MapPageRoute(Yönlendirme Adı, Yönlendirme Yolu ve parametreler, URL'nin yönlendirileceği gerçek sayfa) Örneğin: void Application_Start(object sender, EventArgs e) { RouteCollection routes = RouteTable.Routes; routes.MapPageRoute("Ürün Görüntüleme", "Urunler/{KategoriAdi}/{*UrunKimligi}", "~/UrunGoruntule.aspx"); routes.MapPageRoute("Sayfalar", "Sayfalar/{SayfaAdi}", "~/Sayfalar.aspx"); } Bu örnekte iki tane yönlendirme yapılıyor. Süslü parantez içinde verilenler parametreler. UrunKimligi parametresinin yanındaki yıldız bu parametrenin kullanılmayabileceğini bildiriyor. Son parametre ise yönlendirmenin yapılacağı asıl sayfa. Belirtilen bir yönlendirme ile eşleşen bir istek yapıldığında ilgili sayfa yükleniyor. Örneğin birinci yönlendirme ile şunlar eşleşebilir. http://example.com/Urunler/Elbise/4 http://example.com/Urunler/123/BirMetin http://example.com/Urunler/Pantolon http://example.com/Urunler/123 Görüldüğü gibi parametrelerin veri tipi yok, biçimi uysun yeter. Bu bilgiler yönlendirilen sayfaya aynı QueryString (adres çubuğundaki sorgu dizesi) gibi string veriler olarak gidecek ve tipleriyle QueryString'de olduğu gibi ilgili sayfada uğraşacaksın. Yönlendirilen sayfa içinden Page_Load yordamında (veya başka yerde de olabilir); Bir parametrenin gelip gelmediğini test etmek için (örneğin UrunKimligi): if (Page.RouteData.Values.ContainsKey("UrunKimligi")) { ... } Bir parametrenin değerini almak için: (Örneğin http://example.com/Urunler/Elbise/4 şeklinde gelen bir istekteki ürün kimliği parametresine karşılık gelen 4 değerini) string stringUrunKimligi = Page.RouteData.Values["UrunKimligi"); Belirli bir yönlendirme ile bu sayfaya gelinip gelinmediğini öğrenmek için (örneğin "Ürün Görüntüleme"): if (Page.RouteData.Route == RouteTable.Routes["Ürün Görüntüleme"]) { ... } ifadelerini kullanabilirsin. Bir parametre için değer gelmemişse (üstteki http://example.com/Urunler/Pantolon adresindeki gibi), bu değer için boş bir string alırsın. Bunu da; if (stringUrunKimligi == String.Empty) { ... } şeklinde test edebilirsin.
Ekleyen: cevapsitesi
Değiştiren: cevapsitesi
Cevap olarak seçen: canora
13.06.16 19:26
Bunun için routing (yönlendirme) kullanılıyor. Routing
yönteminde, yapılan isteklerdeki web site adresinden sonra gelen kısmın
(path) yapısına bakarak uygun sayfalara yönlendirme yapılıyor. Örneğin yapılan istek: http://cevapsitesi.com/urunler/kategori/1 ise, bu adresteki /urunler/kategori/1 kısmına bakılıyor. Bu
yönlendirmeler Global.asax dosyası içindeki ApplicationStart olayının
içinde tanımlanabilir. Global.asax dosyası yoksa Visual Studio'dan
oluşturabilirsin. Dosya oluştuğunda zaten Application_Start olayını
karşılayan yordamı göreceksin. Tanımlamalar bunun içinde yapılacak. Yönlendirmeler için System.Web.Routing isim alanı kullanılıyor. Bunu Global.asax dosyanın üstündeki import bölümünde şöyle bildirmelisin. <%@ import namespace="System.Web.Routing" %> Arkasından Application_Start olayı içinde yönlendirmelerini RouteTable.Routes statik kolleksiyonununa eklemelisin. RouteCollection sınıfından olan Routes özelliğinin MapPageRoute yöntemiyle yönlendirme ekleniyor. Bunun bir kaç kullanımı var. En temel olanı şöyle: MapPageRoute(Yönlendirme Adı, Yönlendirme Yolu ve parametreler, URL'nin yönlendirileceği gerçek sayfa) Örneğin: void Application_Start(object sender, EventArgs e) { RouteCollection routes = RouteTable.Routes; routes.MapPageRoute("Ürün Görüntüleme", "Urunler/{KategoriAdi}/{*UrunKimligi}", "~/UrunGoruntule.aspx"); routes.MapPageRoute("Sayfalar", "Sayfalar/{SayfaAdi}", "~/Sayfalar.aspx"); } Bu örnekte iki tane yönlendirme yapılıyor. Süslü parantez içinde verilenler parametreler. UrunKimligi parametresinin yanındaki yıldız bu parametrenin kullanılmayabileceğini bildiriyor. Son parametre ise yönlendirmenin yapılacağı asıl sayfa. Belirtilen bir yönlendirme ile eşleşen bir istek yapıldığında ilgili sayfa yükleniyor. Örneğin birinci yönlendirme ile şunlar eşleşebilir. http://example.com/Urunler/Elbise/4 http://example.com/Urunler/123/BirMetin http://example.com/Urunler/Pantolon http://example.com/Urunler/123 Görüldüğü gibi parametrelerin veri tipi yok, biçimi uysun yeter. Bu bilgiler yönlendirilen sayfaya aynı QueryString (adres çubuğundaki sorgu dizesi) gibi string veriler olarak gidecek ve tipleriyle QueryString'de olduğu gibi ilgili sayfada uğraşacaksın. Yönlendirilen sayfa içinden Page_Load yordamında (veya başka yerde de olabilir); Bir parametrenin gelip gelmediğini test etmek için (örneğin UrunKimligi): if (Page.RouteData.Values.ContainsKey("UrunKimligi")) { ... } Bir parametrenin değerini almak için: string stringUrunKimligi = Page.RouteData.Values["UrunKimligi"); Belirli bir yönlendirme ile bu sayfaya gelinip gelinmediğini öğrenmek için (örneğin "Ürün Görüntüleme"): if (Page.RouteData.Route == RouteTable.Routes["Ürün Görüntüleme"]) { ... } ifadelerini kullanabilirsin.
Ekleyen: cevapsitesi
En fazla 3 eski durum gösterilir.