|
|
Julkaistu 16.8.2016 13.52.38
|
|
|
|

WebAPI:ssa pyyntörunkoa (HttpContent) voi lukea vain kerran, ei välimuistissa, ja sitä voi lukea vain eteenpäin.
Esimerkiksi:
1. Pyyntöosoite: /?id=123&name=bob
Palvelinpuolen metodi: void Action(int id, string name) // Kaikki parametrit ovat yksinkertaisia tyyppejä, joten ne kaikki tulevat url:sta
2. Pyyntöosoite: /?id=123&name=bob
Palvelinpuolen metodi: void Action([FromUri] int id, [FromUri] merkkijonon nimi) // Sama kuin edellä
void Action([FromBody] merkkijonon nimi); [FormBody]-attribuutti näyttää, että koko keho luetaan merkkijonona argumenttina
3. Pyyntöosoite: /?id=123
Luokan määritelmä:
public class Customer { // Määritelty monimutkainen oliotyyppi julkinen merkkijono Nimi { get; setti; } public int Age { get; setti; }
}
Palvelinpuolen metodi: void Action(int id, Customer c) // Parametrin id luetaan kyselymerkkijonosta, parametri c on monimutkainen asiakasobjektiluokka, luetaan rungosta muotoilun kautta
Palvelinpuolen menetelmä: void action (Asiakas c1, Asiakas c2) // Virhe! Useat parametrit ovat monimutkaisia tyyppejä ja kaikki yrittävät lukea kappaleesta, jota voidaan lukea vain kerran
Palvelinpuolen metodi: void action([FromUri] Asiakas c1, Asiakas c2) // Kyllä! Toisin kuin yllä mainitussa toiminnossa, kompleksityyppi C1 luetaan URL-osoitteesta ja C2 rungosta
4. ModelBinder-menetelmä:
void Action([ModelBinder(MyCustomBinder)] SomeType c) // Tarkoittaa, että tiettyä mallisidontaa käytetään parametrin ratkaisemiseen
[ModelBinder(MyCustomBinder)] julkinen luokka SomeType { } // Sovella tätä sääntöä kaikkiin SomeType-tyyppiparametreihin määrittämällä [ModelBidner(MyCustomBinder)] attribuutti tietylle tyypille SomeType
void Action (SomeType c) // Koska c:n tyyppi on SomeType, SomeTypen ominaisuuksia sovelletaan sen mallisidonnan määrittämiseen
Yhteenveto:
1. Oletusparametrit kulkevat URL-parametrien kautta, poikkeuksin:
1.1 Jos reitti sisältää id-parametrin, id-parametri kulkee reitin läpi;
1.2 Jos parametri on merkitty [FromBody], parametri voi olla yksinkertainen parametri, ja asiakas voi välittää sen POST-muodossa: $.ajax(url, '=value'), tai $.ajax({url: url, data: {'': 'value'}});
2. Oletusmonimutkaiset parametrit (mukautetut entiteettiluokat) välitetään POSTin kautta, poikkeuksin:
2.1 Jos parametrin arvo on merkitty [FromUri], parametri voi olla kompleksiparametri;
3. Parametri, joka on merkitty [FromBody], saa esiintyä vain kerran, parametri, joka on merkitty [FromUri], voi esiintyä useita kertoja, ja jos [FromUri] -parametri on yksinkertainen parametri, tunniste voidaan poistaa. |
Edellinen:.NET Oracle -monitaulukyselymenetelmä, typerä menetelmä.Seuraava:C# käyttää heijastusta määrittääkseen, onko ominaisuus annettu
|