Programovanie

Ako odovzdať parametre akčným metódam v ASP.NET Core MVC

ASP.NET Core je multiplatformový, otvorený, štíhly, rýchly a modulárny rámec pre vytváranie vysoko výkonných webových aplikácií. Existuje niekoľko spôsobov, ako môžete odovzdať parametre metódam akcie v ASP.NET Core MVC. Môžete ich odovzdať prostredníctvom adresy URL, reťazca dotazu, hlavičky požiadavky, tela žiadosti alebo dokonca formulára. Tento článok hovorí o všetkých týchto spôsoboch a ilustruje ich príkladmi kódu.

Ak chcete pracovať s príkladmi kódu uvedenými v tomto článku, mali by ste mať vo svojom systéme nainštalovanú aplikáciu Visual Studio 2019. Ak ešte nemáte kópiu, môžete si tu stiahnuť Visual Studio 2019.

Vytvorte projekt ASP.NET Core MVC v Visual Studio 2019

Najprv si vytvoríme projekt ASP.NET Core v Visual Studio 2019. Za predpokladu, že je vo vašom systéme nainštalované Visual Studio 2019, vytvorte nový projekt ASP.NET Core v Visual Studio podľa krokov uvedených nižšie.

  1. Spustite Visual Studio IDE.
  2. Kliknite na „Vytvoriť nový projekt“.
  3. V okne „Vytvoriť nový projekt“ vyberte zo zobrazeného zoznamu šablón „Webová aplikácia ASP.NET Core“.
  4. Kliknite na Ďalej.
  5. V okne „Konfigurácia nového projektu“ zadajte názov a umiestnenie nového projektu.
  6. Voliteľne začiarknite políčko „Umiestniť riešenie a projekt do rovnakého adresára“, podľa vašich preferencií.
  7. Kliknite na tlačidlo Vytvoriť.
  8. V nasledujúcom okne „Vytvorenie novej webovej aplikácie ASP.NET Core“ vyberte z rozbaľovacieho zoznamu v hornej časti .NET Core ako modul runtime a ASP.NET Core 3.1 (alebo novší).
  9. Vyberte „Webová aplikácia (Model-View-Controller)“ ako šablónu projektu na vytvorenie novej aplikácie ASP.NET Core MVC.
  10. Skontrolujte, či nie sú začiarknuté políčka „Povoliť podporu Docker“ a „Konfigurovať pre HTTPS“, pretože tu nebudeme tieto funkcie používať.
  11. Skontrolujte, či je overenie nastavené na „Bez overenia“, pretože tiež nebudeme používať overenie.
  12. Kliknite na tlačidlo Vytvoriť.

Podľa týchto krokov by ste mali vytvoriť nový projekt ASP.NET Core MVC v Visual Studio 2019. Tento projekt použijeme v nižšie uvedených častiach na ilustráciu rôznych metód odovzdávania parametrov metódam akcií v ASP.NET Core 3.1.

Vytvorte triedu AuthorRepository v ASP.NET Core MVC

V tomto príklade budeme používať triedu úložiska - metódy akcie v radiči budú interagovať s metódami triedy úložiska pre operácie CRUD. Najskôr vytvoríme modelovú triedu s názvom Autor s minimálnymi vlastnosťami kvôli jednoduchosti, ako je to zobrazené v útržku kódu uvedenom nižšie.

  verejná trieda Autor

    {

public int Id {get; sada; }

verejný reťazec FirstName {get; sada; }

verejný reťazec Priezvisko {get; sada; }

    }

Trieda AuthorRepository obsahuje metódy na načítanie inštancií triedy Author zo všeobecného zoznamu, ako aj na pridávanie nových inštancií triedy Author do všeobecného zoznamu. Metóda GetAuthors vracia stránku s údajmi, pričom číslo stránky sa jej odovzdáva ako argument.

  verejná trieda AuthorRepository

    {

Autori zoznamu = nový Zoznam ()

        {

nový autor

            {

Id = 1,

FirstName = "Joydip",

Priezvisko = "Kanjilal"

            },

nový autor

            {

Id = 2,

FirstName = "Steve",

Priezvisko = "Smith"

            }

        };

verejný autor GetAuthor (int id)

        {

vrátiť autorov.FirstOrDefault (a => a.Id == id);

        }

verejný zoznam GetAuthors (int pageNumber = 1)

        {

int pageSize = 10;

int skip = pageSize * (pageNumber - 1);

if (autori. počet <pageSize)

pageSize = autorov.Count;

návratoví autori

. Preskočiť (preskočiť)

.Take (pageSize) .ToList ();

        }

public bool Uložiť (autor autor)

        {

var výsledok = autori.Kde (a => a.Id == author.Id);

if (výsledok! = null)

            {

if (result.Count () == 0)

                {

autori.Pridať (autor);

návrat pravdivý;

                }

            }

návrat nepravdivý;

        }

    }

Zadajte parametre cez adresu URL v ASP.NET Core MVC

Jedným z najjednoduchších a najjednoduchších spôsobov, ako odovzdať parametre metóde akcie, je ich odovzdanie prostredníctvom adresy URL. Nasledujúci úryvok kódu ilustruje, ako môžete odovzdať parametre do adresy URL.

[HttpGet]

[Route („Predvolené / GetAuthor / {authorId: int}“)]

public IActionResult GetAuthor (int authorId)

{

var data = authorRepository.GetAuthor (authorId);

návrat Zobraziť (údaje);

}

Adresa URL koncového bodu je:

ZÍSKAJTE: // localhost: 8061 / predvolené / GetAuthor / 1

Predajte parametre prostredníctvom reťazca dotazu v ASP.NET Core MVC

Ďalšou možnosťou je zadanie parametrov do reťazca dotazu. Nevyžaduje zmenu informácií o smerovaní, a preto je spätne kompatibilný. Zvážte nasledujúci útržok kódu, ktorý ilustruje, ako môžete odovzdať parametre prostredníctvom reťazcov dotazu v metóde akcie.

[HttpGet]

[Route („Predvolené / GetAuthors / {pageNumber: int}“)]

public IActionResult GetAuthors ([FromQuery

(Name = "pageNumber")] int pageNumber = 1)

{

var data = authorRepository.GetAuthors (pageNumber);

návrat Ok (dáta);

}

Tu je adresa URL na prístup k tomuto koncovému bodu:

GET: // localhost: 8061 / Default / GetAuthors? PageNumber = 1

Metóda GetAuthors prijíma číslo stránky ako argument, ktorý sa jej zasiela prostredníctvom reťazca dotazu. Všimnite si, že pageNumber je voliteľný parameter - ak tejto metóde nie je odovzdaný žiadny parameter, potom by sa číslo stránky interpretovalo ako 1. Metóda vráti záznamy autora pre zadanú stránku. V našom príklade, ak je v úložisku údajov 100 záznamov autorov a číslo stránky je 3, táto metóda vráti záznamy 31 až 40. (Upozorňujeme, že počet autorov na stránku je pevne zakódovaný; v časti Trieda AuthorRepository.)

Predajte parametre prostredníctvom hlavičky požiadavky v ASP.NET Core MVC

Hlavička požiadavky je ďalšou možnosťou na odovzdanie parametrov vašim metódam akcie. Bežným prípadom použitia je odovzdávanie poverení alebo akýchkoľvek iných tajných údajov po kábli. Nasledujúci úryvok kódu ilustruje metódu akcie, ktorá akceptuje číslo kreditnej karty ako parameter a vráti hodnotu true, ak je číslo kreditnej karty platné.

[HttpGet]

[Route („Predvolené / IsCreditCardValid / {creditCardNumber}“)]

public IActionResult IsCreditCardValid ([FromHeader] string creditCardNumber)

{

reťazec regexExpression =

   "^(?:(?4[0-9]{12}(?:[0-9]{3})?)|" +

   "(?5[1-5][0-9]{14})|" +

   "(?3[47][0-9]{13})|)$";

Regex regex = nový Regex (regexExpression);

var match = regex.Match (creditCardNumber);

návrat Ok (match.Success);

}

Kvôli jednoduchosti akčná metóda IsCreditCardValid validuje iba kreditné karty Visa, MasterCard a Amex. Metódu IsCreditCardValid môžete rozšíriť o ďalšie typy kariet. Pretože číslo kreditnej karty by malo byť zadané bezpečne, dobrou voľbou je tu použitie hlavičky žiadosti. Obrázok 1 ukazuje, ako môžete určiť číslo svojej kreditnej karty ako parameter prostredníctvom hlavičky požiadavky.

Predajte parametre cez telo žiadosti v ASP.NET Core MVC

Pri vykonávaní operácií vloženia alebo aktualizácie budete často musieť zadať parametre cez telo žiadosti. Nasledujúci úryvok kódu ilustruje, ako môžete odovzdať inštanciu triedy Author cez telo žiadosti.

[HttpPost]

[Trasa („Predvolené / Vložiť“)]

public IActionResult Insert ([FromBody] autor autor)

{

return Ok (authorRepository.Save (autor));

}

Obrázok 2 zobrazuje, ako môžete určiť údaje, ktoré sa majú vložiť do tela žiadosti.

Kompletný zdrojový kód našej triedy DefaultController

Celý kód triedy DefaultController je uvedený nižšie pre vašu informáciu.

 verejná trieda DefaultController: radič

    {

súkromné ​​iba na čítanie AuthorRepository authorRepository =

new AuthorRepository ();

[HttpGet]

[Route („Predvolené / GetAuthor / {authorId: int}“)]

public IActionResult GetAuthor (int authorId)

        {

var data = authorRepository.GetAuthor (authorId);

návrat Ok (dáta);

        }

[HttpGet]

[Route („Predvolené / GetAuthors / {pageNumber: int}“)]

public IActionResult GetAuthors ([FromQuery

(Name = "pageNumber")] int pageNumber = 1)

        {

var data = authorRepository.GetAuthors (pageNumber);

návrat Ok (dáta);

        }

[HttpGet]

[Route („Predvolené / IsCreditCardValid / {creditCardNumber}“)]

public IActionResult IsCreditCardValid

([FromHeader] string creditCardNumber)

        {

reťazec regexExpression =

            "^(?:(?4[0-9]{12}(?:[0-9]{3})?)|" +

            "(?5[1-5][0-9]{14})|" +

            "(?3[47][0-9]{13})|)$";

Regex regex = nový Regex (regexExpression);

var match = regex.Match (creditCardNumber);

návrat Ok (match.Success);

        }

[HttpPost]

[Trasa („Predvolené / Vložiť“)]

public IActionResult Insert ([FromBody] autor autor)

        {

return Ok (authorRepository.Save (autor));

        }

    }

Nakoniec môžete zadať parametre aj prostredníctvom formulára. Ak chcete nahrať súbor, často sa používa formulár. V takom prípade by ste museli využiť rozhranie IFormFile.

Ako urobiť viac v ASP.NET Core:

  • Ako používať analyzátory API v ASP.NET Core
  • Ako používať tokeny dát trasy v ASP.NET Core
  • Ako používať spravovanie verzií API v ASP.NET Core
  • Ako používať objekty na prenos dát v ASP.NET Core 3.1
  • Ako spracovať chyby 404 v ASP.NET Core MVC
  • Ako používať vkladanie závislostí do filtrov akcií v ASP.NET Core 3.1
  • Ako používať vzor možností v ASP.NET Core
  • Ako používať smerovanie koncového bodu v ASP.NET Core 3.0 MVC
  • Ako exportovať údaje do programu Excel v ASP.NET Core 3.0
  • Ako používať LoggerMessage v ASP.NET Core 3.0
  • Ako posielať e-maily v ASP.NET Core
  • Ako prihlásiť údaje na server SQL Server v ASP.NET Core
  • Ako plánovať úlohy pomocou Quartz.NET v ASP.NET Core
  • Ako vrátiť dáta z webového rozhrania ASP.NET Core Web API
  • Ako formátovať údaje odpovedí v ASP.NET Core
  • Ako konzumovať webové rozhranie API ASP.NET Core pomocou nástroja RestSharp
  • Ako vykonávať asynchronné operácie pomocou nástroja Dapper
  • Ako používať príznaky funkcií v ASP.NET Core
  • Ako používať atribút FromServices v ASP.NET Core
  • Ako pracovať s cookies v ASP.NET Core
  • Ako pracovať so statickými súbormi v ASP.NET Core
  • Ako používať middleware na prepisovanie adries URL v ASP.NET Core
  • Ako implementovať obmedzenie rýchlosti v ASP.NET Core
  • Ako používať Azure Application Insights v ASP.NET Core
  • Používanie pokročilých funkcií NLog v ASP.NET Core
  • Ako spracovať chyby v webovom rozhraní API ASP.NET
  • Ako implementovať globálne spracovanie výnimiek v ASP.NET Core MVC
  • Ako spracovať nulové hodnoty v ASP.NET Core MVC
  • Pokročilé spravovanie verzií v webovom rozhraní API ASP.NET Core
  • Ako pracovať s pracovnými službami v ASP.NET Core
  • Ako používať rozhranie Data Protection API v ASP.NET Core
  • Ako používať podmienený middleware v ASP.NET Core
  • Ako pracovať so stavom relácie v ASP.NET Core
  • Ako písať efektívne radiče v ASP.NET Core
$config[zx-auto] not found$config[zx-overlay] not found