属性は[FromBody]
ですか?私は例のためにそれを使用するとき、私は、意味:C#の[FromBody]属性の機能は何ですか?
public async Task SetUser([FromBody]User user)
を、私が使用している場合:
public async Task SetUser(User user)
サーバは問題なく同じオブジェクトを取得し、そう、それは必要なセットだこと、または私は心配することなくそれを取り除くことができますか?
Grettings!
属性は[FromBody]
ですか?私は例のためにそれを使用するとき、私は、意味:C#の[FromBody]属性の機能は何ですか?
public async Task SetUser([FromBody]User user)
を、私が使用している場合:
public async Task SetUser(User user)
サーバは問題なく同じオブジェクトを取得し、そう、それは必要なセットだこと、または私は心配することなくそれを取り除くことができますか?
Grettings!
User
は複雑な型です。したがって、デフォルトでは、サーバーは要求本体から解決しようとします。シンプルなタイプの場合(例:
public async Task SetUser(string userId)
サーバーはURLバインディングを介して値を解決しようとします。あなたは、私は通常、単に読みやすさのために署名に[FromBody]
を残す
public async Task SetUser([FromBody] string userId)
を指定することにより、その動作をオーバーライドすることができます。
URIを介して、または要求本体の一部として、パラメータをサーバーに渡す方法は2通りあります。
データがURIで渡されると、クエリ文字列になります。 http://server.com/something?userId=5。これは、引数がint userId
のアクションメソッドによって処理されます。
データがリクエスト本体で渡されると、URIでデータが表示されません。たとえば、http://server.com/somethingとなります。パラメータは、要求本体の中で名前と値の組として渡されます。
しかし、ボディを通して何かを渡すためには、ボディがなければならず、GETリクエストは通常リクエストボディを持っていません(技術的には持っていますが、パラメータを渡すアクションメソッドをGETする)。通常、POSTアクションメソッドでは、引数はFromBody
属性で修飾されています。同様に、通常、GETアクションはURIを介して引数を受け取ることを期待しています。これは、GETメソッドの目的に沿ったものです。
動作を制御するには、FromUri
またはFromBody
のいずれかを指定します。カスタムバインドを定義できるようにする属性もBindModel
です。
詳細については、このリンクをチェックしてください:http://stackoverflow.com/questions/24625303/why-do-we-have-to-specify-frombody-and-fromuri-in-asp-net-web-api – Vijai