Bu makalemizde Asp.Net MVC ile Jquery UI componentleri nasıl kullanacağımızı inceleyelim. Bu işlemi bir örnek uygualama üzerinde gerçekleştirelim. Örneğimizde bir DatePicker olsun, bu control’de seçilen tarihi “Kaydet” isimli butona tıkladığımızda Controller’da nasıl kullanacağımızı inceleyelim.
Yeni bir Asp.Net MVC 3 Web Application – Empty Applicaton oluşturalım.
Sayfamızdan alacağımız veriyi model ile alacağımız için “Models” klasörünün altına DenemeModel isminde bir model ekleyelim.
- namespace UgurKizmaz.Models
- {
- public class DenemeModel
- {
- public string Tarih { get; set; }
- }
- }
Sadece string olarak Tarih bilgisini tutalım.
Şimdi Model’i kullanacağımız Controller’ı ekleyelim. İsmi JQueryController olsun.
- namespace UgurKizmaz.Controllers
- {
- public class JQueryController : Controller
- {
- public ActionResult DatePicker()
- {
- return View();
- }
- [HttpPost]
- public ActionResult DatePicker(DenemeModel model)
- {
- return View();
- }
- }
- }
İlk methodumuz, sayfamızı oluşturan methodumuzdur. İkinci methodumuz ise HttpPost attribute’undan da anlaşılacağı üzere sayfadan post edilen veriyi alıp işleyen methodumuzdur.
Şimdi DatePicker() methodumuza sağ tıklayıp Add View diyelim ve modelimizi ekleyelim.
DatePicker.cshtml dosyamızın kodlarını aşağıdaki gibi düzenleyelim ve yapılan işlemleri inceleyelim.
- @model UgurKizmaz.Models.DenemeModel
- @{
- Layout = "~/Views/Shared/_Layout.cshtml";
- }
- <link href="../../Content/themes/base/jquery.ui.datepicker.css" rel="stylesheet"
- type="text/css" />
- <link href="../../Content/themes/base/jquery.ui.theme.css" rel="stylesheet" type="text/css" />
- <link href="../../Content/themes/base/jquery.ui.core.css" rel="stylesheet" type="text/css" />
- <script src="../../Scripts/jquery-ui-1.8.11.js" type="text/javascript"></script>
- <script type="text/javascript">
- $(function () {
- $("#dtptarih").datepicker();
- });
- </script>
- @using (Html.BeginForm()) {
- @Html.ValidationSummary(true)
- <fieldset>
- <p>
- @Html.TextBoxFor(model => model.Tarih, new { @id = "dtptarih" })
- <input type="submit" value="Tikla" runat="server"/>
- </p>
- </fieldset>
- }
1. 1. Modelimizi belirliyoruz.
@model UgurKizmaz.Models.DenemeModel
|
2. Layout’u belirliyoruz.
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
|
3. 3. Date picker’ın düzgün görünümü için gerekli CSS dosyalarını yüklüyoruz.
- <link href="../../Content/themes/base/jquery.ui.datepicker.css" rel="stylesheet"
- type="text/css" />
- <link href="../../Content/themes/base/jquery.ui.theme.css" rel="stylesheet" type="text/css" />
- <link href="../../Content/themes/base/jquery.ui.core.css" rel="stylesheet" type="text/css" />
4. 4. Jquery’nin javascript dosyasını ekliyoruz.
- <script src="../../Scripts/jquery-ui-1.8.11.js" type="text/javascript"></script>
5. 5. DatePicker’ı, ID’si “dtTarih” olan HTML elemanınıa bağlıyoruz.
- <script type="text/javascript">
- $(function () {
- $("#dtTarih").datepicker();
- });
- </script>
6. 6. Modelimizi kullanarak HTML formumuzu oluşturuyruz.
@using (Html.BeginForm()) {
}
|
7. 7. Post işlemine dahil edeceğimiz model elemanlarının bulunacağı alanı belirliyoruz.
- <fieldset>
- </fieldset>
8. 8. Model’imizin özelliklerinin (modelimizde sadece Tarih property’si olduğu için bu özelliğinin) TextBox’larını oluşturuyoruz (Buraya girilecek verileri Conttoller’a göndereceğiz.) Burada dikkat etmeniz gereken nokta, bu textBox’a Html Attribute’u (HTML Özelliği) verdik : @id = “dtTarih”. Yani bu HTML elemanımızın adı “dtTarih” olsun dedik. Bu sayede 5. maddede yazdığımız durumu gerçekleştirmek için gerekli HTML elemanını da oluşturmuş oluyoruz.
@Html.TextBoxFor(model => model.Tarih, new { @id = "dtTarih" })
|
9. 9. Post işlemini gerçekleştirecek butonumuzu yerleştiriyoruz.
- <input type="submit" value="Tikla" runat="server"/>
10. Şimdi projemizi çalıştıralım ve JQuery/DatePicker linkine gidelim.
TextBox’a tıkladığımızda hemen altında DatePicker açıldı. Şimdi picker’dan bir tarih seçelim.
Şimdi, ControlleR’a dönelim ve post işlemini gerçekleştirdiğimizde çalışacak kodumuza breakpoint koyalım ve Tıkla butonuna tıklayalım.
Modelimizin Tarih değerinde 04/28/2011 değerinin yazdığını görebiliyoruz. Bu değeri artık controller’da kullanabiliriz.
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi