Tworzenie akcji (VB)
autor: Microsoft
Dowiedz się, jak dodać nową akcję do kontrolera MVC ASP.NET. Dowiedz się więcej o wymaganiach dotyczących metody, która ma być akcją.
Celem tego samouczka jest wyjaśnienie sposobu tworzenia nowej akcji kontrolera. Poznasz wymagania metody akcji. Dowiesz się również, jak zapobiec uwidocznieniu metody jako akcji.
Dodawanie akcji do kontrolera
Do kontrolera zostanie dodana nowa akcja, dodając nową metodę do kontrolera. Na przykład kontroler w liście 1 zawiera akcję o nazwie Index() i akcję o nazwie SayHello(). Obie metody są uwidocznione jako akcje.
Lista 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
Aby uwidocznić wszechświat jako akcję, metoda musi spełniać pewne wymagania:
- Metoda musi być publiczna.
- Metoda nie może być metodą statyczną.
- Metoda nie może być metodą rozszerzenia.
- Metoda nie może być konstruktorem, getterem ani zestawem.
- Metoda nie może mieć otwartych typów ogólnych.
- Metoda nie jest metodą klasy bazowej kontrolera.
- Metoda nie może zawierać parametrów ref lub out .
Zwróć uwagę, że nie ma żadnych ograniczeń dotyczących typu zwrotnego akcji kontrolera. Akcja kontrolera może zwrócić ciąg, data/godzina, wystąpienie klasy Random lub unieważnić. Struktura ASP.NET MVC przekonwertuje dowolny typ zwracany, który nie jest wynikiem akcji na ciąg i renderuje ciąg w przeglądarce.
Po dodaniu dowolnej metody, która nie narusza tych wymagań kontrolera, metoda jest uwidoczniona jako akcja kontrolera. Zachowaj ostrożność tutaj. Akcja kontrolera może być wywoływana przez każdą osobę połączoną z Internetem. Nie należy na przykład tworzyć akcji kontrolera DeleteMyWebsite().
Zapobieganie wywoływaniu metody publicznej
Jeśli musisz utworzyć metodę publiczną w klasie kontrolera i nie chcesz uwidaczniać metody jako akcji kontrolera, możesz uniemożliwić wywoływanie metody za pomocą atrybutu <NonAction> . Na przykład kontroler w liście 2 zawiera metodę publiczną o nazwie CompanySecrets(), która jest ozdobiona atrybutem <NonAction> .
Lista 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
Jeśli spróbujesz wywołać akcję kontrolera CompanySecrets(), wpisując ciąg /Work/CompanySecrets na pasku adresu przeglądarki, zostanie wyświetlony komunikat o błędzie na rysunku 1.
Rysunek 01. Wywoływanie metody NonAction (Kliknij, aby wyświetlić obraz pełnowymiarowy)
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla