Aracılığıyla paylaş


Eylem Oluşturma (VB)

Microsoft tarafından

ASP.NET MVC denetleyicisine yeni eylem eklemeyi öğrenin. Bir yöntemin eylem olması için gereksinimler hakkında bilgi edinin.

Bu öğreticinin amacı, yeni denetleyici eylemini nasıl oluşturabileceğinizi açıklamaktır. Eylem yönteminin gereksinimleri hakkında bilgi ediniyorsunuz. Ayrıca bir yöntemin eylem olarak kullanıma sunulmasını nasıl önleyeceğinizi de öğrenirsiniz.

Denetleyiciye Eylem Ekleme

Denetleyiciye yeni bir yöntem ekleyerek denetleyiciye yeni bir eylem eklersiniz. Örneğin, Liste 1'deki denetleyici Index() adlı bir eylem ve SayHello() adlı bir eylem içerir. Her iki yöntem de eylem olarak kullanıma sunulur.

Liste 1 - Controllers\HomeController.vb

<HandleError()> _
Public Class HomeController
    Inherits System.Web.Mvc.Controller

    Function Index() As ActionResult
        Return View()
    End Function

    Function SayHello() As String
        Return "Hello!"
    End Function
End Class

Evrene bir eylem olarak maruz kalabilmek için bir yöntemin belirli gereksinimleri karşılaması gerekir:

  • yöntemi genel olmalıdır.
  • yöntemi statik bir yöntem olamaz.
  • yöntemi bir uzantı yöntemi olamaz.
  • Yöntemi bir oluşturucu, getter veya ayarlayıcı olamaz.
  • Yöntemin açık genel türleri olamaz.
  • yöntemi, denetleyici temel sınıfının bir yöntemi değildir.
  • yöntemi ref veya out parametreleri içeremez.

Denetleyici eyleminin dönüş türüyle ilgili bir kısıtlama olmadığına dikkat edin. Denetleyici eylemi bir dize, DateTime, Random sınıfının bir örneği veya void döndürebilir. ASP.NET MVC çerçevesi, eylem sonucu olmayan herhangi bir dönüş türünü dizeye dönüştürür ve dizeyi tarayıcıya işler.

Bu gereksinimleri ihlal etmeyen herhangi bir yöntemi bir denetleyiciye eklediğinizde, yöntem bir denetleyici eylemi olarak kullanıma sunulur. Burada dikkatli olun. Denetleyici eylemi, İnternet'e bağlı herkes tarafından çağrılabilir. Örneğin, DeleteMyWebsite() denetleyici eylemi oluşturmayın.

Ortak Yöntemin Çağrılmasını Önleme

Bir denetleyici sınıfında genel bir yöntem oluşturmanız gerekiyorsa ve yöntemini denetleyici eylemi olarak kullanıma sunmamak istiyorsanız NonAction> özniteliğini kullanarak yöntemin <çağrılmasını önleyebilirsiniz. Örneğin, Listeleme 2'deki denetleyici NonAction> özniteliğiyle <süslenmiş CompanySecrets() adlı bir genel yöntem içerir.

Liste 2 - Controllers\WorkController.vb

Public Class WorkController
    Inherits System.Web.Mvc.Controller

     _
    Function CompanySecrets() As String
        Return "This information is secret."
    End Function

End Class

Tarayıcınızın adres çubuğuna /Work/CompanySecrets yazarak CompanySecrets() denetleyici eylemini çağırmaya çalışırsanız, Şekil 1'de hata iletisini alırsınız.

NonAction yöntemini çağırma

Şekil 01: Bir NonAction yöntemini çağırma (Tam boyutlu görüntüyü görüntülemek için tıklayın)