Atrybut [NonAction] w ASP MVC
W ASP MVC wszystkie publiczne metody w kontrolerze są dostępne przez URL np. za pośrednictwem przeglądarki internetowej. Dzieje się tak ponieważ wszystkie publiczne metody są traktowane jako „action methods”. Nie zawsze jest to pożądane zachowanie. Rozwiązaniem tego problemu jest użycie atrybutu [NonAction].
Prostym przykładem może być poniższy kontroler.
public class HomeController : Controller { public string GetNonPublicInfo() { return "non-public information"; } }
Wywołanie tej metody da następujący efekt:
Jak widać mamy dostęp do tej metody. Teraz możemy użyć atrybut [NonAction]:
public class HomeController : Controller { [NonAction] public string GetNonPublicInfo() { return "non-public information"; } }
W tej chwili próba dostępu do tego URL będzie skutkować zwróceniem błędu:
Jak widać użycie atrybutu [NonAction] daje w prosty sposób pożądany efekt.