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:

NonPublic

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:

NonActionAfter
Jak widać użycie atrybutu [NonAction] daje w prosty sposób pożądany efekt.

Share Button

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Time limit is exhausted. Please reload the CAPTCHA.