Creazione di un'azione (VB)
di Microsoft
Informazioni su come aggiungere una nuova azione a un controller MVC ASP.NET. Informazioni sui requisiti per un metodo come azione.
L'obiettivo di questa esercitazione è spiegare come creare una nuova azione del controller. Vengono fornite informazioni sui requisiti di un metodo di azione. Si apprenderà anche come impedire l'esposizione di un metodo come azione.
Aggiunta di un'azione a un controller
Aggiungere una nuova azione a un controller aggiungendo un nuovo metodo al controller. Ad esempio, il controller nell'elenco 1 contiene un'azione denominata Index() e un'azione denominata SayHello(). Entrambi i metodi vengono esposti come azioni.
Elenco 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
Per essere esposti all'universo come azione, un metodo deve soddisfare determinati requisiti:
- Il metodo deve essere pubblico.
- Il metodo non può essere un metodo statico.
- Il metodo non può essere un metodo di estensione.
- Il metodo non può essere un costruttore, un getter o un setter.
- Il metodo non può avere tipi generici aperti.
- Il metodo non è un metodo della classe base del controller.
- Il metodo non può contenere parametri ref o out .
Si noti che non esistono restrizioni sul tipo restituito di un'azione del controller. Un'azione del controller può restituire una stringa, un valore DateTime, un'istanza della classe Random o void. Il framework MVC ASP.NET convertirà qualsiasi tipo restituito che non è un risultato dell'azione in una stringa ed eseguirà il rendering della stringa nel browser.
Quando si aggiunge un metodo che non viola questi requisiti a un controller, il metodo viene esposto come azione del controller. Fai attenzione qui. Un'azione del controller può essere richiamata da chiunque sia connesso a Internet. Non creare, ad esempio, un'azione del controller DeleteMyWebsite().
Impedire che venga richiamato un metodo pubblico
Se è necessario creare un metodo pubblico in una classe controller e non si vuole esporre il metodo come azione del controller, è possibile impedire che il metodo venga richiamato usando l'attributo <NonAction> . Ad esempio, il controller nell'elenco 2 contiene un metodo pubblico denominato CompanySecrets() decorato con l'attributo <NonAction> .
Elenco 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
Se si tenta di richiamare l'azione del controller CompanySecrets() digitando /Work/CompanySecrets nella barra degli indirizzi del browser, verrà visualizzato il messaggio di errore nella figura 1.
Figura 01: Richiamo di un metodo NonAction (Fare clic per visualizzare l'immagine a dimensione intera)