ASP.NET MVC 3 Razor ile Uygulama Geliştirme Yazı Dizisi 7 – HTML.Form ve Html.Helper’larının Kullanımı 1


asp-net-MVC3

Merhaba MVC Severler,

Önceki yazımda global.asax’ın ne işe yaradığını ve MapRoute kavramını konuştuk. Bu yazımda ise Html.Form kontrolünün ne işe yaradığını, html kontrollerinin nasıl kullanılabildiğini göreceğiz.

Arkadaşlar unutmayalım ki, biz MVC’de sayfaları değil metotları çağırıyoruz. İlk uygulamamızda hatırlarsanız, sadece 2 tane view oluşturduk ve bu View’leri görüntüledik.

Peki biz eğer sayfaları çağırmıyorsak, metotları nasıl çağıracağız?

Cevabı aslında oldukça basit:  UrlHelper olan Url’i kullanarak.

Kontrolleri nasıl kullabilirim? Form nasıl oluştururum ve formdan bilgileri nasıl alabilirim?

Öncelikle arkadaşlar dikkat çekmek istediğim bölüm, ASP.NET kontrollerinin toolbox içerisinde yer almaması. ASP.NET MVC içerisinde ASP.NET kontrollerini kullanmıyoruz. Bu yüzden bir tane TextBox atıyım name’ine de txtMesaj dedikten sonra Controller içerisinde bu kontrole erişim diye düşünüyorsanız gerçekle yüzleşme vakti. Bu şekilde bir erişim MVC içerisinde mümkün değildir arkadaşlar.

MVC içerisinde Html kontrolleri kullanmak durumundayız eğer hazır telerik veya devexpress kontrolleri kullanmıyorsanız.

ASP.NET bilenler bilir ki, ASP.NET sayfaları içerisinde eğer kontroller kullanacaksak bir tane form elementi oluşturup içerisinde geri kalan tüm kontrollerimi yazarım. Herhangi bir submit butonunda ise, o form içerisinde tüm nesneler server tarafına gider, bu da server tarafı için fazladan trafik oluşturmaktadır. Ayrıca ASP.NET kontrolleri kullanmadığımız için View State‘in yükünden de kurtulmuş oluruz.

@ işareti ile başlayıp yazdığım satılar Razor söz dizilimidir. Razorun esnekliği ve rahatlığını, kullandıkça daha iyi fark edeceksiniz.

View’lerim içerisinde birden fazla form oluşturabilirim. Her form farklı bir işlev yapabilir, farklı bir action çalıştırabilir, ya da farklı bir

using anahtar sözcüğü ile HtmlHelper’i kullanıyoruz. Html.BeginForm() dedikten sonra artık form elemanlarımı yazabilirim. Burada arkadaşlar BeginForm’a herhangi bir parametre vermezseniz, default olarak View’i döndüren Action çalışacaktır. Eğer kendiniz harici bir Action vermek istiyorsanız. Html.BeginForm(“action adi”) olarak verebilirsiniz. Fakat bu bölümün ayrıntılarını ilerleyen bölümlerde göreceğiz.

@Html.TextBox(“textbox’in name-id si”) diyerek TextBox oluşturabiliyorum. Ne kadar ilginç değil mi? Peki bu verdiğim name/id nerede karşıma çıkacak.

ViewBag.Message: ViewBag ile View içerisinde veri taşıyabilirsiniz. Object olarak değer almaktadır ve dynamic türündedir. Ben View içerisinde atadığımda çağırıldığı yerde içeriğini yazar(response.write gibi).

        public ActionResult Contact(string txtMesaj)
        {
            ViewBag.Message = txtMesaj;
            return View();
        }

txtMesaj dediğimiz zaman Html.TextBox içerisine yazılan değeri bu şekilde alabiliyorum.

Sadece bu yöntem ile birden fazla yöntem ile bu TextBox içerisinde alabilirim.

Bir sonraki yazımda Html Helper içerisinde sık kullanılan Kontrolleri anlatacağım ve Form yapısını biraz daha inceleyeceğiz.

 

MVC ile kalın

, , ,

  1. ASP.NET MVC 3 Razor ile Uygulama Geliştirme Yazı Dizisi 7 – HTML.Form ve Kontrollerin Kullanımı 2 (HTML Helpers) « Mahmut Can Sözeri
  2. ASP.NET MVC 3 Razor ile Uygulama Geliştirme Yazı Dizisi 8 – Html Helper’larıyla Css, Javascript Kullanmak ve Html Helper’ların Attribute’lerini Kullanmak (Video Demo)) « Mahmut Can Sözeri
  3. ASP.NET MVC 3 Razor ile Uygulama Geliştirme Yazı Dizisi 8 – Html Helper’larıyla Css, Javascript Kullanmak ve Html Helper’ların Attribute’lerini Kullanmak (Video Demo) « Mahmut Can Sözeri
  4. [Blog Post(Turkish)] ASP.NET MVC İle İlgili Tüm Yazılarım (29 Yazı, 1 Yazı Dizisi ve 1 İpucu Serisi) « Mahmut Can Sozeri

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s