Asp.net MVC Action Kontrolü ve Action Attribute

25 Ağu

Bu bölümde controller sınıfımızdaki action metodları nasıl kontrol edilebileceği vebu metodlara erişim izinlerini belirleyen ve bu metodları bir anlamda özelleştiren bazı attribute’lerden bahsedeceğiz. İnceleyeceğimiz bazı attribute’ler:

  • AcceptVerbs
  • ActionName
  • ActionMethodSelector

AcceptVerbs Attribute

Bu attribute action metoduna HTTP operasyonları yardımıyla erişme izinlerini belirler. Bir action metoduna sadece HTTP Get metoduyla ya da Post metoduyla erişilmesini isteyebiliriz. Bu durumda ilgili action metodumuz AcceptVerbs attribute ile işaretlememiz gerekecektir.

Bir employee controller sınıfımıza ait Create() metodu olduğunu varsayacak olursak bu noktada iki adet Create() action metoduna ihtiyacımız olacaktır. Birinci metod HTTP GET operasyonu ile metodu ile çağrılmalı ve form sayfasını karşımıza çıkarmalı, ikinci metod ise form doldurulduktan sonra HTTP POST metodu ile verilerin alınarak işlenmesini sağlayacaktır.

// GET: /Employee/Create

[AcceptVerbs(HttpVerbs.Get)]

public ActionResult Create()

{

return View();

}
// POST: /Employee/Create

[AcceptVerbs(HttpVerbs.Post)]

public ActionResult Create(Employee employeeToCreate)

{

try

{

//Kayıtları yap…

return RedirectToAction(“Index”);

}

catch

{

return View();

}

}

Bu durumda bowser ortamından /Employee/Create şeklinde çağırdığımızda eğer controller oluşturulmamışsa hata raporu gözükecektir.

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Requested URL: /Employee/Create

Bu hatanın sebebi, henüz Employee adında controller oluşturulmamış olmasıdır.

Employee adında bir Controller oluşturulduktan sonra ve bir Create action metod oluşturulursa sorun çözülmüş olacaktır.

Action metodlarını HTTP operasyonlarıyla işaretlemenin bir diğer yolu ise aşağıdaki şekildedir. [AcceptVerbs(HttpVerbs.Post)] yazımının kısa yazılmış şeklidir.

        [HttpGet]
public ActionResult MyAction()

{

return View();

}

Bu metod daha kullanışlıdır. Hazır oluşturulmuş attributeler yazdımıyla işaretlemeler yapılmaktadır.

HTTP operasyonlarından en çok bilinen POST ve GET operasyonlarıdır. Diğer operasyonlar DELETE, PUT, HEAD, TRACE, CONNECT.

2 thoughts on “Asp.net MVC Action Kontrolü ve Action Attribute

  1. Merhaba.Makale güzel de o hata durumunda bunu nası çözeceğimizi de belirtebilir misiniz.Şuan böyle bi sorunla karşılaştım.Yardımcı olur musunuz?

    • Bu hatanın sebebi Controller sınıfının oluşturulmamasıdır. Ayrıca zamanda controller oluşturulmuş olabilir ismi yanlış yazılmış olabilir, bu durumdada aynı hatayı alabiliriz.

Comments are closed.