C#ASP.NET WebAPIのパラメーターバインディングとは何ですか?
バインディングは、WebAPIがcontrolleractionメソッドを呼び出すときにパラメーターの値を設定するプロセスです。
さまざまなタイプのパラメーターを使用するWebAPIメソッドと、バインディングプロセスをカスタマイズする方法。
パラメータがint、bool、doubleなどの単純な型の場合、Web APIはURIから(ルートデータまたはクエリ文字列のいずれかから)値を取得しようとします
パラメータがCustomer、Employeeなどの複合型の場合、WebAPIFrameworkはリクエスト本文から値を取得しようとします。
[FromBody]属性と[FromUri]属性を使用して、パラメーターバインディングプロセスのこのデフォルトの動作を変更できます。
FromUri −
パラメータが単純型の場合、WebApiはURIから値を取得しようとします
double、DateTime、GUID文字列などの.NETプリミティブ型文字列型からeconvertingできる任意の型
例
public Student Get(int id){}
FromBody
タイプがComplextypeのパラメーターの場合、WebApiはメッセージ本文の値をバインドしようとします。
例
Public Student Post(Employee employee){}
[FromUri]
Web APIにURIから複合型を読み取らせるには、[FromUri]属性をパラメーターに追加します
[FromUri]属性を使用して、WebApiに複雑なタイプの値をQueryStringから取得させます。
例
public Student Get([FromUri] Employee employee) public HttpResponseMessage Get([FromUri] Employee employee) { ... }
[FromBody]
[FromBody]属性を使用して、デフォルト値とは反対に、リクエスト本文からプリミティブ型の値を取得します
いいえ、1回のアクションで複数のFormBodyを使用することはできません。
Web APIにリクエスト本文から単純型を読み取らせるには、[FromBody]
を追加します。この例では、Web APIはメディアタイプフォーマッターを使用して、リクエスト本文からnameの値を読み取ります
例
public Student Post([FromBody] string name]){...} public HttpResponseMessage Post([FromBody] string name) { ... }
-
C#ASP.NET WebAPIのアクションメソッドからカスタム結果タイプを返す方法は?
IHttpActionResultインターフェイスを実装することで、結果タイプとして独自のカスタムクラスを作成できます。 。 IHttpActionResultには、HttpResponseMessageインスタンスを非同期的に作成する単一のメソッドExecuteAsyncが含まれています。 public interface IHttpActionResult { Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken); } コントロ
-
C#ASP.NET WebAPIでのコントローラーアクションのさまざまな戻り値の種類は何ですか?
Web APIアクションメソッドは、次のリターンタイプを持つことができます。 ボイド プリミティブ型/複合型 HttpResponseMessage IHttpActionResult 無効 − すべてのアクションメソッドが何かを返す必要はありません。ボイドリターンタイプにすることができます。 例 using DemoWebApplication.Models using System.Web.Http; namespace DemoWebApplication.Controllers{ public class DemoCont