Programmēšana

Kā nodot parametrus darbības metodēm ASP.NET Core MVC

ASP.NET Core ir starpplatformu, atvērtā koda, vienkārša, ātra un modulāra sistēma augstas veiktspējas tīmekļa lietojumprogrammu veidošanai. Ir vairāki veidi, kā jūs varat nodot parametrus darbības metodēm ASP.NET Core MVC. Tos var nosūtīt, izmantojot URL, vaicājuma virkni, pieprasījuma galveni, pieprasījuma pamattekstu vai pat veidlapu. Šis raksts runā par visiem šiem veidiem un tos ilustrē ar kodu piemēriem.

Lai strādātu ar šajā rakstā sniegtajiem kodu piemēriem, sistēmā jābūt instalētai Visual Studio 2019. Ja jums vēl nav kopijas, varat lejupielādēt Visual Studio 2019 šeit.

Izveidojiet ASP.NET Core MVC projektu Visual Studio 2019

Vispirms izveidosim ASP.NET Core projektu Visual Studio 2019. Pieņemot, ka Visual Studio 2019 ir instalēta jūsu sistēmā, veiciet tālāk norādītās darbības, lai izveidotu jaunu ASP.NET Core projektu Visual Studio.

  1. Palaidiet Visual Studio IDE.
  2. Noklikšķiniet uz “Izveidot jaunu projektu”.
  3. Logā “Izveidot jaunu projektu” parādīto veidņu sarakstā atlasiet “ASP.NET Core Web Application”.
  4. Noklikšķiniet uz Tālāk.
  5. Logā “Konfigurēt jauno projektu” norādiet jaunā projekta nosaukumu un vietu.
  6. Pēc izvēles atzīmējiet izvēles rūtiņu “Novietot risinājumu un projektu vienā direktorijā” atkarībā no jūsu vēlmēm.
  7. Noklikšķiniet uz Izveidot.
  8. Nākamajā logā “Izveidot jaunu ASP.NET Core tīmekļa lietojumprogrammu” augšdaļā esošajā nolaižamajā sarakstā atlasiet .NET Core kā izpildlaiku un ASP.NET Core 3.1 (vai jaunāku).
  9. Atlasiet “Web Application (Model-View-Controller)” kā projekta veidni, lai izveidotu jaunu ASP.NET Core MVC lietojumprogrammu.
  10. Pārliecinieties, vai nav atzīmētas izvēles rūtiņas “Iespējot Docker atbalstu” un “Konfigurēt HTTPS”, jo mēs šeit neizmantosim šīs funkcijas.
  11. Pārliecinieties, vai autentifikācijai ir iestatīta vērtība “Nav autentifikācijas”, jo mēs arī neizmantosim autentifikāciju.
  12. Noklikšķiniet uz Izveidot.

Veicot šīs darbības, Visual Studio 2019 jāizveido jauns ASP.NET Core MVC projekts. Mēs izmantosim šo projektu tālāk sniegtajās sadaļās, lai ilustrētu dažādas metodes, kā parametrus nodot darbības metodēm programmā ASP.NET Core 3.1.

ASP.NET Core MVC izveidojiet AuthorRepository klasi

Šajā piemērā mēs izmantosim repozitorija klasi - darbības metodes kontrolierī mijiedarbosies ar CRUD operāciju repozitorija klases metodēm. Vispirms mēs vienkāršības labad izveidosim modeļa klasi ar nosaukumu Autors ar minimālām īpašībām, kā parādīts tālāk sniegtajā koda fragmentā.

  sabiedrības klase Autors

    {

public int Id {get; komplekts; }

publiskā virkne FirstName {get; komplekts; }

publiskā virkne Uzvārds {get; komplekts; }

    }

Klase AuthorRepository satur metodes autoru klases gadījumu atgūšanai no vispārīga saraksta, kā arī jaunu autoru klases gadījumu pievienošanai vispārīgajam sarakstam. GetAuthors metode atgriež datu lapu, lapas numuru tai nododot kā argumentu.

  public class Autora krātuve

    {

Saraksta autori = jauns saraksts ()

        {

jauns Autors

            {

Id = 1,

Vārds = "Joydip",

Uzvārds = "Kanjilal"

            },

jauns Autors

            {

Id = 2,

Vārds = "Stīvs",

Uzvārds = "Smits"

            }

        };

publiskais autors GetAuthor (int id)

        {

atgriešanās autori.FirstOrDefault (a => a.Id == id);

        }

publiskais saraksts GetAuthors (int pageNumber = 1)

        {

int pageSize = 10;

int izlaist = pageSize * (pageNumber - 1);

ja (autori. Skaits <pageSize)

pageSize = autori.Skaits;

atgriešanās autori

Izlaist (izlaist)

.Take (pageSize) .ToList ();

        }

public bool Save (Autora autors)

        {

var rezultāts = autori. Kur (a => a.Id == autors.Id);

ja (rezultāts! = nulle)

            {

ja (rezultāts.Skaits () == 0)

                {

autori.Pievienot (autors);

atgriezties taisnība;

                }

            }

atgriezties nepatiesa;

        }

    }

Nosūtiet parametrus caur URL ASP.NET Core MVC

Viens no vienkāršākajiem un vienkāršākajiem veidiem, kā nodot parametrus darbības metodei, ir to nodošana, izmantojot URL. Šis koda fragments parāda, kā URL var pārsūtīt parametrus.

[HttpGet]

[Maršruts ("Default / GetAuthor / {authorId: int}")]

public IActionResult GetAuthor (int authorId)

{

var dati = authorRepository.GetAuthor (authorId);

atgriezties View (dati);

}

Galapunkta URL ir:

GET: // localhost: 8061 / Default / GetAuthor / 1

Nosūtiet parametrus caur vaicājuma virkni ASP.NET Core MVC

Parametru nodošana vaicājuma virknē ir vēl viena iespēja. Tam nav jāmaina maršrutēšanas informācija, un tāpēc tas ir savietojams atpakaļ. Apsveriet šo koda fragmentu, kas ilustrē, kā darbības metodē var nodot parametrus, izmantojot vaicājuma virknes.

[HttpGet]

[Maršruts ("Default / GetAuthors / {pageNumber: int}")]

publiskie IActionResult GetAuthors ([FromQuery

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

{

var data = authorRepository.GetAuthors (pageNumber);

atgriezties Ok (dati);

}

Šeit ir URL, lai piekļūtu šim galapunktam:

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

GetAuthors metode pieņem lapas numuru kā argumentu, kas tam nosūtīts, izmantojot vaicājuma virkni. Ņemiet vērā, ka pageNumber ir neobligāts parametrs - ja šai metodei netiek nodots neviens parametrs, lapas numurs tiek interpretēts kā 1. Metode atgriež norādītās lapas autoru ierakstus. Mūsu piemērā, ja datu krātuvē ir 100 autoru ierakstu un lappuses numurs ir 3, šī metode atgriezīs ierakstus no 31 līdz 40. (Ņemiet vērā, ka autoru skaits vienā lappusē ir stingri kodēts; tas ir norādīts kā 10 Autora krātuves klase.)

Nosūtiet parametrus caur pieprasījuma galveni ASP.NET Core MVC

Pieprasījuma galvene ir vēl viena iespēja parametru pārsūtīšanai uz jūsu darbības metodēm. Parasti tam ir akreditācijas datu vai citu slepenu datu pārsūtīšana pa vadu. Šis koda fragments ilustrē darbības metodi, kas kā parametru pieņem kredītkartes numuru un atgriež vērtību true, ja kredītkartes numurs ir derīgs.

[HttpGet]

[Maršruts ("Default / IsCreditCardValid / {creditCardNumber}")]

public IActionResult IsCreditCardValid ([FromHeader] virkne creditCardNumber)

{

virkne regexExpression =

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

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

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

Regex regex = jauns regex (regexExpression);

var match = regex.Match (creditCardNumber);

atgriezties Ok (mačs. Veiksme);

}

Vienkāršības labad darbības metode IsCreditCardValid apstiprina tikai Visa, MasterCard un Amex kredītkartes. Jūs varat paplašināt IsCreditCardValid metodi, lai apstiprinātu citus karšu veidus. Tā kā kredītkartes numurs ir jānodod droši, šeit ir laba izvēle izmantot pieprasījuma galveni. 1. attēlā parādīts, kā jūs varat norādīt savas kredītkartes numuru kā parametru, izmantojot pieprasījuma galveni.

Nosūtiet parametrus caur pieprasījuma ķermeni ASP.NET Core MVC

Kad veicat ievietošanas vai atjaunināšanas darbības, jums bieži būs jānodod parametri, izmantojot pieprasījuma struktūru. Šis koda fragments parāda, kā jūs varat nodot Autora klases instanci caur pieprasījuma pamattekstu.

[HttpPost]

[Maršruts ("Noklusējums / Ievietot")]

public IActionResult Insert ([FromBody] Autora autors)

{

atgriezties Ok (authorRepository.Save (autors));

}

2. attēlā parādīts, kā jūs varat norādīt pieprasījuma pamattekstā ievietojamos datus.

Pilnīgs mūsu DefaultController klases avota kods

Pilns DefaultController klases kods ir sniegts zemāk jūsu zināšanai.

 publiskā klase DefaultController: kontrolieris

    {

privāts tikai lasāms. autorRepository

jauns AuthorRepository ();

[HttpGet]

[Maršruts ("Default / GetAuthor / {authorId: int}")]

public IActionResult GetAuthor (int authorId)

        {

var dati = authorRepository.GetAuthor (authorId);

atgriezties Ok (dati);

        }

[HttpGet]

[Maršruts ("Default / GetAuthors / {pageNumber: int}")]

publiskie IActionResult GetAuthors ([FromQuery

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

        {

var data = authorRepository.GetAuthors (pageNumber);

atgriezties Ok (dati);

        }

[HttpGet]

[Maršruts ("Default / IsCreditCardValid / {creditCardNumber}")]

public IActionResult IsCreditCardValid

([FromHeader] virkne creditCardNumber)

        {

virkne regexExpression =

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

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

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

Regex regex = jauns regex (regexExpression);

var match = regex.Match (creditCardNumber);

atgriezties Ok (mačs. Veiksme);

        }

[HttpPost]

[Maršruts ("Noklusējums / Ievietot")]

public IActionResult Insert ([FromBody] Autora autors)

        {

atgriezties Ok (authorRepository.Save (autors));

        }

    }

Visbeidzot, parametrus varat arī nodot, izmantojot veidlapu. Veidlapu bieži izmanto, kad vēlaties augšupielādēt failu. Šajā gadījumā jums vajadzētu izmantot IFormFile saskarnes priekšrocības.

Kā paveikt vairāk programmā ASP.NET Core:

  • Kā izmantot API analizatorus ASP.NET Core
  • Kā izmantot maršruta datu marķierus ASP.NET Core
  • Kā izmantot API versijas ASP.NET Core
  • Kā izmantot datu pārsūtīšanas objektus ASP.NET Core 3.1
  • Kā rīkoties ar 404 kļūdām ASP.NET Core MVC
  • Kā atkarības injekciju izmantot darbības filtros ASP.NET Core 3.1
  • Kā izmantot opciju modeli ASP.NET Core
  • Kā izmantot galapunkta maršrutēšanu ASP.NET Core 3.0 MVC
  • Kā eksportēt datus uz Excel programmā ASP.NET Core 3.0
  • Kā lietot LoggerMessage ASP.NET Core 3.0
  • Kā nosūtīt e-pastus ASP.NET Core
  • Kā reģistrēt datus SQL Server ASP.NET Core
  • Kā ieplānot darbus, izmantojot Quartz.NET ASP.NET Core
  • Kā atgriezt datus no ASP.NET Core Web API
  • Kā formatēt atbildes datus ASP.NET Core
  • Kā patērēt ASP.NET Core Web API, izmantojot RestSharp
  • Kā veikt asinhronas darbības, izmantojot Dapper
  • Kā izmantot funkciju karodziņus ASP.NET Core
  • Kā izmantot atribūtu FromServices ASP.NET Core
  • Kā strādāt ar sīkdatnēm ASP.NET Core
  • Kā strādāt ar statiskiem failiem ASP.NET Core
  • Kā izmantot URL pārrakstīšanas starpprogrammatūru ASP.NET Core
  • Kā ieviest ātruma ierobežošanu ASP.NET Core
  • Kā izmantot Azure Application Insights ASP.NET Core
  • Papildu NLog funkciju izmantošana ASP.NET Core
  • Kā rīkoties ar kļūdām ASP.NET Web API
  • Kā ieviest globālo izņēmumu apstrādi ASP.NET Core MVC
  • Kā rīkoties ar nulles vērtībām ASP.NET Core MVC
  • Uzlabota versiju veidošana ASP.NET Core Web API
  • Kā strādāt ar darbinieku pakalpojumiem ASP.NET Core
  • Kā izmantot datu aizsardzības API ASP.NET Core
  • Kā izmantot nosacīto starpprogrammatūru ASP.NET Core
  • Kā strādāt ar sesijas stāvokli ASP.NET Core
  • Kā rakstīt efektīvus kontrollerus ASP.NET Core
$config[zx-auto] not found$config[zx-overlay] not found