ekrem özer

her yerde olan şeyler.

MVC'de @ Operatörünün Kullanımı

Razor View Engine söz diziminde kodlamalar @ operatörüyle başlar Web Form View Engine’ın aksine <% karakterleriyle başlayıp %> karakterleriyle bitmez. Bir önceki yazımızda zaten Razorun kod yazmayı pratik hale getirmeyi hedeflediğinden bahsetmiştik. Razor, bir ifadenin başında bulunan @ karakterini, kod ifadesinin başlangıcı olarak değerlendirir. Örnek olarak;

@DateTime.Now

Görüldüğü gibi sayfamıza eklediğimiz tarih saat için @ karakterini ve ilgili dildeki saat tarih kodunu yazmamız yeterli olacaktır. Ayrıca diğer view engine’lardan farklı olarak kod bloğunun bitişini belirtmemize gerek yoktur. Yukarıdaki kodu Web Form View Engine’da yazacak olsaydık aşağıdaki gibi belirtmemiz gerekirdi.

<%:Date.Time.Now%>

@ Karakterinin tek satırlı kullanımı aşağıdaki gibidir;

@{var ad_soyad=”Ekrem ÖZER”;}
@{
  var ad="Ekrem";
  var soyad="ÖZER";
}

@ Karakterinin satır içinde kullanımı da aşağıdaki gibidir;

<p>www.ekremozer.com:<b>@ad_soyad</b></p>

Çok Satırlı Kod Blokları Oluşturma

Razor View Engine söz diziminde tek satırlı veya birden çok satırlı kod blokları oluşturmak istediğimizde küme parantezlerini “{,}” kullanmamız gereklidir.

@{int sayi1=3;}
 
@{
  int sayi2=5;
  int toplan=sayi1 + sayi2;
}

Burada belirtmemiz gereken önemli bir durumda noktalı virgül kullanımıdır. Satır sonlarını belirtmek için noktalı virgül ekliyoruz. Örnek olarak;

@{
  int sayi1=3;
  int sayi2=5;
  int toplam=sayi1 + sayi2;
}

Görüldüğü gibi kod bloğunun içerisindeki her satırın sonuna noktalı virgül koyduk. Satır içerisinde kod kullanımı gerektiği durumlarda küme parantezi ve sonuna noktalı virgül eklememize gerek yoktur. Satır içi ifade eklemek için kodun başına @ karakterini koymak yeterli olacaktır.

<p>İki sayının toplamı=@toplam</p>

Diğer View Engin’lerden farklı olarak Razor’da kod bloğunun içerisinde HTML kodu veya metin yazmak istediğimizde ayrıca kodun başlangıç ve bitişini belirtmemize gerek yoktur. Razor, kod bloğu içerisindeki HTML kodları otomatik olarak algılar.

@{
  int sayi1=3;
  int sayi2=5;
  int toplam=sayi1 + sayi2;
  <span>3 ve 5 sayılarının toplamı:</span>@toplam
}

Razor’da oluşturduğumuz kod bloğu içerisine html etiketlerini kullanmadan metin eklemek istediğimizde, yazacağımız metni <text></text> etiketleri arasında yazarak kod bloğu içerisine ekliyoruz.

@{
  int sayi1=3;
  int sayi2=5;
  int toplam=sayi1 + sayi2;
  <text>3 ve 5 sayılarının toplamı:@toplam</text>
}

<text> etiketini birden fazla satırlı metin yazırmak istediğimizde kullanabiliriz. Tek satırlı metin yazdırmak istediğimizde @: karakterlerini beraber kullanabiliriz.

@{
  int sayi1=3;
  int sayi2=5;
  int toplam=sayi1 + sayi2;
  @:3 ve 5 sayılarının toplamı:@toplam
}

Kod bloğu içerisinde ürettiğimiz değeri yine kod bloğu içerisinde kullanma zorunluluğumuz yoktur. Küme parantezi ile oluşturduğumuz kod bloğunun içerisinde ürettiğimiz değeri, kod bloğunun dışında da kullanabiliriz.

@{
  int sayi1=3;
  int sayi2=5;
  int toplam=sayi1 + sayi2;
}
 
3 ve 5 sayılarının toplamı:@toplam

Satır içi kullanımda birden fazla metin ve değişkenin yazılması durumunda ifadenin başına @( karakterlerini ve bitimine de ) karakterini koymamız gerekmektedir.

@{
  int sayi1=3;
  int sayi2=5;
  int toplam=sayi1 + sayi2;
}
 
@("3 ve 5 sayılarının toplamı:"+ toplam +"'dir".)

@ Karakteri ile kullandığımız parantezleri içerisinde matematiksel işlemde yapabiliriz. Aşağıdaki kodun  çıktısı 8 olacaktır.

@(3+5)