Controlorii, metodele de acțiune și rezultatele acțiunilor - documentația mvc 6

Metodele de acțiune și rezultatele acțiunilor reprezintă o parte fundamentală a dezvoltării folosind MVC ASP.NET.

Ce este un controler?

În ASP.NET 5, controlerul poate fi o clasă de instanță care se termină cu un "Controller", sau poate fi moștenit dintr-o clasă care se termină cu un "Controller". Controlorii respectă principiul dependențelor explicite și solicită toate dependențele care sunt necesare acțiunilor lor prin intermediul constructorului prin introducerea dependențelor.







În mod prestabilit, clasele de controler sunt:
  • sunt situate în dosarul "Controlere"
  • Moștenit de la Microsoft.AspNet.Mvc.Controller

Aceste două acorduri nu sunt necesare.

În modelul Model-View-Controller, controlerul este responsabil pentru procesarea inițială a cererii și crearea instanței modelului. De obicei, logica de afaceri este implementată în cadrul modelului.

Modelul trebuie să fie un obiect obișnuit CLR vechi (POCO). dar nu și DbContext sau tipul asociat cu baza de date.

Controlorul ia rezultatul procesării modelului (dacă există) și returnează vizualizarea corespunzătoare împreună cu datele asociate cu acesta. Vezi 🔧 Prezentare generală a MVC ASP.NET și Noțiuni de bază cu ASP.NET MVC 6.

Controler - o interfață de nivel de abstractizare. El este responsabil pentru faptul că datele de intrare sunt valide și selectează o vizualizare care este necesar să se întoarcă. Într-o serie de aplicații bine construit nu include acces direct la logica de date sau de afaceri, și în loc să delege prelucrarea acestor lucruri de servicii necesare.

Definirea metodelor de acțiune¶

Orice metodă deschisă în controler este o metodă de acțiune. Parametrii de acțiune sunt asociați cu datele de interogare și validați prin legarea modelului.

Pentru metodele de acțiune care acceptă parametrii, proprietatea ModelState.IsValid trebuie să fie setată la true.







Acțiunile trebuie să conțină logică pentru a primi solicitările primite. Logica de afaceri este reprezentată în mod obișnuit sub formă de servicii, la care controlorul are acces prin introducerea dependențelor. Acțiunile apoi transmit rezultatul la starea aplicației.

Acțiunile pot returna orice, dar de obicei returnează o instanță a IActionResult (sau Task pentru metodele asincrone). Metodele de acțiune sunt, de asemenea, responsabile pentru ce tip de răspuns va fi.

Metode de control auxiliar

În mod tipic, majoritatea dezvoltatorilor doresc ca controlorii să moștenească de la controlerul de bază. Controlorii accesează apoi mai multe proprietăți și metode utile, inclusiv următoarele metode de ajutor care sprijină returnarea diferitelor răspunsuri:

Vizualizări Returnează vizualizările pe care modelul le utilizează pentru a reprezenta codul HTML. De exemplu: Vizualizare retur (client); Codurile de stare HTTP Returnează codurile de stare HTTP. De exemplu: returnați BadRequest (); răspuns formatată este returnat Json sau ceva similar cu formatul obiectului. De exemplu: returnați Json (client); Răspunsuri cu privire la starea obiectului în loc de a se întoarce acțiunea returnează un răspuns cu privire la starea (folosind Ok. Creat. CreatedAtRoute sau CreatedAtAction). De exemplu: întoarcere Ok (); sau retur CreatedAtRoute ( "routename", valori, newobject "); Redirecționând face redirecționarea către o altă acțiune (folosind redirecționeze,` `LocalRedirect``,` `RedirectToAction`` sau RedirectToRoute). Exemplu: întoarcere RedirectToAction (" Complete“, nou) ;

În plus, o acțiune poate reveni pur și simplu la un obiect. În acest caz, obiectul va fi formatat pe baza solicitării clientului. Consultați Formatare.

"Diviziunea muncii" ¶

În majoritatea aplicațiilor, acțiunile vor lucra uneori uneori la anumite părți ale procesului. De exemplu, o parte din aplicație poate fi accesată numai pentru utilizatorii autentificați sau puteți utiliza memoria cache. Dacă doriți să implementați o anumită logică înainte sau după declanșarea unei anumite metode de acțiune, puteți utiliza filtrul. Puteți reduce semnificativ metodele utilizând Filtre for pentru procesarea unor astfel de lucruri. Acest lucru va ajuta la evitarea dublei acțiuni, permițându-le să respecte principiul "Nu repetați-vă" (DRY).

În plus, puteți utiliza:
  • Handling Manipularea erorilor
  • Rezolvarea cache-ului

Deseori în aplicațiile MVC puteți folosi filtre. Și, în plus, o alternativă la acest lucru este middleware-ul utilizatorului.







Articole similare

Trimiteți-le prietenilor: