W jaki sposób mogę utworzyć metodę w kontrolerze i po prostu wstawić kilka argumentów i wykreśla ją po kliknięciu formularza przesłanego? Pod maską, jak znaleźć właściwą metodę i jak się domyślam, że chcę tylko tych argumentów?W jaki sposób asp.net mvc to rozgryźć?
Odpowiedz
W skrócie:
Silnik routingu obsługuje HttpRequest i sprawdza żądany adres URL. Po znalezieniu pierwszego dopasowania trasy tworzy nową instancję o numerze
MvcRouteHandler
i przekazuje jej uszkodzone tokeny adresu URL w RouteValueDictionary.Trasa
MvcRouteHandler
przejmuje żądanie i próbuje utworzyć instancję klasy kontrolera. Zgodnie z konwencją wyszukuje klasę o nazwie "XXXXXXController", w której X są zastępowane przez parametr {controller} na trasie.Po znalezieniu kontrolera wywołuje odpowiednią dla niego metodę podaną parametrem {akcja} trasy. Wszelkie nazwane argumenty, takie jak {id}, które istnieją w trasie, są przekazywane jako parametry metody.
Zasadniczo wszystko, co ASP.Net MVC "wie", pochodzi z informacji o trasie. Nie jest w stanie odgadnąć parametrów z powietrza - muszą one pochodzić z analizy trasy. Jeśli informacji nie ma w żądanym adresie URL, nie można go przekazać do metody.
Należy również zauważyć, że można zastąpić zachowanie szkieletu, ustawiając trasy zamiast alternatywnych procedur obsługi zamiast MvcRouteHandler
. Struktura jest dość rozszerzalna, więc możesz włączyć niestandardową funkcjonalność w wielu punktach.
Jest sporo kodu w grze na potrzeby kontrolera, akcji i rozdzielczości, a także modelBinders. Tak bardzo, że najlepiej będzie, jeśli przyjrzysz się konkretnym fragmentom struktury i poprosisz o bardziej szczegółowe pytanie, aby uzyskać dużą odpowiedź.
Na szczęście, ASP.NET MVC framework has been open-sourced, więc jeśli jesteś ciekawy, jak to wszystko działa, możesz get the code i przejrzeć go samodzielnie. Doskonały kod do przeczytania i na pewno się czegoś nauczysz.
Co ważniejsze, należy jednak przyjrzeć się klasom System.Web.Mvc.MvcHandler i System.Web.Mvc.ControllerActionInvoker, które powinny doprowadzić użytkownika do właściwej odpowiedzi.
- 1. W jaki sposób formksomponent można wyliczyć w ASP.NET MVC?
- 2. W jaki sposób mogę przetestować metodę OnActionExecuting kontrolera asp.net-mvc?
- 3. Jaki jest właściwy sposób zarządzania połączeniami MongoDB w ASP.Net MVC?
- 4. Jaki jest najlepszy sposób zarządzania użytkownikami w ASP.NET MVC
- 5. Prawidłowy sposób odniesienia JavaScript w ASP.NET MVC?
- 6. W jaki sposób dostosować ASP.Net Tożsamość
- 7. Jaki jest najlepszy sposób wdrożenia pełnego przeszukiwania aplikacji ASP.NET MVC?
- 8. Prawidłowy sposób używania AutoMapper w ASP.Net MVC
- 9. ASP.NET MVC: Jaki jest prawidłowy sposób przekierowania na strony/akcje w MVC?
- 10. ASP.NET MVC: W jaki sposób kontroler rozróżnia parametry w adresie URL i wysyła POST
- 11. W jaki sposób Asp.Net MVC porównuje się do frameworków Java MVC?
- 12. ASP.NET MVC - co to jest UrlRoutingModule?
- 13. Co to jest silnik widoku ASP.Net MVC?
- 14. asp.net mvc Odpowiedź autoryzowana to pusta strona?
- 15. 404 Strony w ASP.NET MVC
- 16. W jaki sposób debugujesz "Brak trasy w tabeli tras odpowiada dostarczonym wartościom." w ASP.NET MVC
- 17. W jaki sposób "disposable" to ReaderWriterLockSlim?
- 18. RadioButtonFor w ASP.NET MVC 2
- 19. Kontroler asynchroniczny w ASP.NET MVC
- 20. Page.EnableSessionState równowartość w ASP.NET MVC
- 21. W jaki sposób są identyfikowane nazwy uwierzytelniania w asp.net vnext
- 22. Jaki jest sens kluczowego parametru w ModelState.AddModelError w ASP.NET MVC?
- 23. ReturnURL w ASP.NET MVC
- 24. W ASP.NET MVC, w jaki sposób mogę użyć pomocnika Razor @ Url.Content() z kodu C#?
- 25. Uwierzytelnianie LDAP w ASP.Net MVC
- 26. W jaki sposób mogę zaimplementować hierarchię ról w aplikacji mvc asp.net przy użyciu narzędzia activedirectorimbershiphipvider
- 27. W jaki sposób mogę testować widoki jednostkowe i atrybuty autoryzacyjne mojej aplikacji mvc asp.net w nUnit?
- 28. Najlepszy sposób na tworzenie raportów w ASP.NET MVC
- 29. Wykonywanie wyszukiwania w Asp.net MVC
- 30. jQuery CRUD w ASP.NET MVC
Z trasy lub z kolekcji pól formularzy. – GalacticCowboy
Kolekcja pól formularza przychodzi wraz z żądaniem, ale nie ma wpływu na to, jak ASP.Net MVC wymyśla rzeczy. Formularz jest wysyłany pod podany adres URL (zwykle do tego samego kontrolera, który wygenerował widok), a adres URL jest obsługiwany przez silnik routingu. – womp