ASP.NET Core MVC State Management Bölüm-4
  1. Anasayfa
  2. ASP.Net

ASP.NET Core MVC State Management Bölüm-4

0

Bir önceki yazımın devamı olan bu bölüm içerisinde, sizlere QueryString nedir ve kullanımı hakkında bilgiler veriyor olacağım.QueryString MVC yapısından önce kullandığımız url üzerinden parameter gönderme yöntemimizdi. MVC ile Routing kavramı hayatımıza girdi ve SEO uyumlu url’ler oluşturmak için ekstra bir yapı kurmamıza gerek kalmadı. Klasik ASP veya ASP.WebForm gibi yapılarda Rewrirte yaparak düzenliyorduk.

Peki route kavramı varken QueryString kullanacakmıyız?

Route kavramında ihtiyacanız olan tüm URL’leri bir template olarak eklemeniz gerekmektedir. Generic olarak hazırladıklarınız çoğu işinizi görecektir fakat SEO açısından uyumlu olmasını istiyorsanız birden fazla url hazırlamaya hazır olun.

QueryString kullanım amacı ise, Yeni bir istekde url’de yer alan sorgu dizisinin sonuna eklenerek diğer isteğe sınırlı mikrarda veri göndermektir. Bu gibi durumları genelde E-Posta veya sosyal ağlar aracılığıyla paylaşılmasında kullanışlıdır. Örnek olarak şifre sıfırlama gibi işlemlerde URL üzerinden bir token gönderilerek sıfırlama İşlemleri yapılabilir. Dikkat etmemiz gereken, URL sorgu dizeleri tüm kullanıcılara açık olduğundan hassas bilgileri tutmamalıyız ve hata kontrolünü iyi yapmamız gerekmektedir.

Konuyu daha iyi anlamak için örnek bir proje üzerinden inceleyelim.

Sırası ile komutlarımız,

  1. cd Desktop => ilgili dizinimizi masaüstü olarak ayarlıyalım.
  2. mkdir StateManagement => StatManagement adında bir klasör oluşturalım
  3. cd StateManagement => dizin olarak, oluşturduğumuz klasörü belirleyelim
  4. dotnet new mvc -n QueryStringApp -f netcoreapp3.1 => dotnet cli komutlarını kullanarak 3.1 versiyonu ile yeni bir mvc projesi oluşturuyoruz.
  5. cd QueryStringApp => dizinimizi proje ana dizini olarak belirliyoruz.
  6. code . => code(boşluk).(nokta) diyerek vscode’u proje dizininde açıyoruz.

Projemizi oluşturduktan sonra, Index sayfamıza gelelim ve altta yer alan kod bloklarını ekleyelim.

<a href="/home/index?kategori=beverages&fiyat=100&adet=500">Ürün Getir</a>

Yukarıdaki kod bloğunu incelediğimizde, home controller içerisinde yer alan Index action’ına gidecek ve url üzerinden bilgi göndererek, Index sayfasında koşullara uyan ürünler listelenecektir. MVC yapısında bu işlemi yaparken, 2 farklı yöntem kullanabiliriz. .net mvc’den kalma Html helpers veya .net core ile hayatımıza giren tag helpers. Her ikisinide ayrı ayrı inceleyelim.

@Html.ActionLink("Ürün Getir","index","home", new{ kategori = "beverages", fiyat = 100, adet= 500})


<a asp-action="index" asp-controller="home" asp-route-kategori="beverages" asp-route-fiyat="100" asp-route-adet="500">Ürün Getir</a>

Yukarıdaki kullanım şekilleri route parametrelere eğer, Route configurasyonunzda yer almayan parametrelerse querystring olarak çalışacaktır. Yani URL çıktısı;

http://localhost:5000/home/index?kategori=beverages&fiyat=100&adet=500

şeklinde olacaktır.

Controller tarafında gelen verileri yakalamak için, isterseniz Action’a parametre olarak verebilirsiniz,

 

 public class HomeController : Controller


    {


        public IActionResult Index(string kategori, double fiyat = 0, short adet = 0)


        {


            return View();


        }


    }

 

Istek sonucu gelen değerler,

Resim-1

Gelen değerleri, parametre olarak değilde, gelen request üzerinde yakalayacak isek, aşşağıdaki gibi düzenleyerek değerleri teslim alabiliriz.

 

 public class HomeController : Controller


    {


        public IActionResult Index()


        {


            if (Request.Query["kategori"].Count > 0)


            {


                string _kategori = Request.Query["kategori"];


            }


            if (double.TryParse(Request.Query["fiyat"], out double fiyat))


            {


                double _fiyat = fiyat;


            }


            if (short.TryParse(Request.Query["adet"], out short adet))


            {


                short _adet = adet;


            }


            return View();


        }


    }

 

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

 

TAGs: ASP.NET Core MVC State Management Nedir?

 

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 1
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

1982 Ankara doğumluyum, Lise ve Üniversite Eğitimini Açık Öğretim üzerinden tamamladım ve 2009 yılında BilgeAdam ile yazılım hayatına atıldım Öğrenci olarak başladığım kurumda 2009 yılından bu yana farklı görevlerde çalıştım. Şuan Bilgeadam beşiktaş şubesinde aktif olarak danışmanlık ve yazılım eğitmenliği yapmaktayım. Yeni teknolojileri araştırıp öğrenmeyi seven biriyim. İşim gereği hem geliştirdiğim projeler olsun eğitim verdiğim öğrenciler olsun aktif olarak kendimi güncel tutmak işimin gereği ve bu bildiklerimi paylaşmaktan mutluluk duyuyorum.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir