|
|
Publicēts 16.08.2016 13:52:38
|
|
|
|

WebAPI pieprasījuma pamattekstu (HttpContent) var lasīt tikai vienu reizi, nevis kešatmiņā, un to var lasīt tikai uz priekšu.
Piemēram:
1. Pieprasījuma adrese: /?id=123&name=bob
Servera puses metode: void Action(int id, virknes nosaukums) // Visi parametri ir vienkārši tipi, tāpēc tie visi nāks no URL
2. Pieprasījuma adrese: /?id=123&name=bob
Servera puses metode: void Action([FromUri] int id, [FromUri] virknes nosaukums) // Tāds pats kā iepriekš
void Action([FromBody] virknes nosaukums); Atribūts [FormBody] parāda, ka viss pamatteksts tiek lasīts kā virkne kā arguments
3. Pieprasījuma adrese: /?id=123
Klases definīcija:
publiskā klase Klients { // Definēts komplekss objekta tips publiskā virkne Nosaukums { get; komplekts; } publiskais int Vecums { iegūt; komplekts; }
}
Servera puses metode: void Action(int id, Klients c) // Parametra ID tiek nolasīts no vaicājuma virknes, parametrs c ir sarežģīta klienta objektu klase, kas tiek lasīta no ķermeņa līdz formatētājam
Servera puses metode: anulēt darbību (klients c1, klients c2) // Kļūda! Vairāki parametri ir sarežģīti tipi, un visi mēģina lasīt no ķermeņa, ko var nolasīt tikai vienu reizi
Servera puses metode: void action([FromUri] Klients c1, Klients c2) // Jā! Atšķirībā no iepriekš minētās darbības, kompleksais tips C1 tiks nolasīts no URL, un C2 tiks nolasīts no pamatteksta
4. ModelBinder metode:
void Action([ModelBinder(MyCustomBinder)] SomeType c) // Norāda, ka parametra atrisināšanai tiek izmantots konkrēts modeļa saistītājs
[ModelBinder(MyCustomBinder)] publiskā klase SomeType { } // Lietojiet šo kārtulu visiem SomeType tipa parametriem, deklarējot atribūtu [ModelBidner(MyCustomBinder)] noteiktam tipam SomeType
void Action(SomeType c) // Tā kā c tips ir SomeType, SomeType raksturlielumi tiek izmantoti, lai noteiktu tā modeļa saistīšanu
Kopsavilkuma:
1. Noklusējuma vienkāršie parametri tiek nodoti caur URL parametriem, izņemot šādus gadījumus:
1.1 Ja maršrutā ir id parametrs, id parametrs tiek nodots caur maršrutu;
1.2 Ja parametrs ir atzīmēts kā [FromBody], parametrs var būt vienkāršs parametrs, un klients to var nodot caur POST: $.ajax(url, '=value') vai $.ajax({url: url, data: {'': 'value'}});
2. Noklusējuma kompleksie parametri (pielāgotas entītiju klases) tiek nodoti caur POST, ar izņēmumiem:
2.1 Ja parametra vērtība ir atzīmēta kā [FromUri], parametrs var būt sarežģīts parametrs;
3. Parametrs, kas apzīmēts ar [FromBody], ir atļauts parādīties tikai vienu reizi, parametrs, kas atzīmēts kā [FromUri], var tikt parādīts vairākas reizes, un, ja parametrs, kas atzīmēts kā [FromUri], ir vienkāršs parametrs, tagu var noņemt. |
Iepriekšējo:.NET Oracle vairāku tabulu vaicājuma metode, muļķīga metode.Nākamo:C# izmanto atstarošanu, lai noteiktu, vai rekvizīts ir piešķirts
|