C#ASP.NETWebAPIのFromBody属性とFromUri属性の違いは何ですか?
ASP.NET Web APIがコントローラーのメソッドを呼び出すときは、パラメーターの値を設定する必要があります。これは、パラメーターバインディングと呼ばれるプロセスです。
モデル(アクションパラメーター)をバインドするには、通常はフォーマッターにデフォルト設定されますが、URIから[FromUri]属性でモデルを装飾する必要があります。 FromUriAttributeは、ModelBinderAttributeから継承するだけで、IUriValueProviderFactoryで定義されたValueProviderを使用してURIから特定のパラメーターを取得するようにWebAPIに指示するショートカットディレクティブを提供します。属性自体は封印されており、これ以上拡張することはできませんが、必要な数のカスタムIUriValueProviderFactoriesを追加できます。
ParameterBindingAttributeクラスを継承する[FromBody]属性は、HTTPリクエストの本文からパラメーターとそのプロパティを設定するために使用されます。 ASP.NETランタイムは、本文を読み取る責任を入力フォーマッターに委任します。 [FromBody]が複合型パラメーターに適用されると、そのプロパティに適用されるバインディングソース属性はすべて無視されます。
FromUri属性の例 −
例
using System.Collections.Generic; using System.Web.Http; namespace DemoWebApplication.Controllers{ public class DemoController : ApiController{ public IEnumerable<string> Get([FromUri] string id, [FromUri] string name){ return new string[]{ $"The Id of the Student is {id}", $"The Name of the Student is {name}" }; } } }
上記の例では、URIのidとnameの値を渡して、Getメソッドの対応する変数に入力します。
http:// localhost:58174 / api / demo?id =1&name =Mark
出力
上記のコードの出力は
です。
FromBody属性の例 −
例
以下のプロパティを持つStudentモデルを作成しましょう。
namespace DemoWebApplication.Models{ public class Student{ public int Id { get; set; } public string Name { get; set; } } }
コントローラーコード −
例
using DemoWebApplication.Models; using System.Collections.Generic; using System.Web.Http; namespace DemoWebApplication.Controllers{ public class DemoController : ApiController{ public IEnumerable<string> Get([FromBody] Student student){ return new string[]{ $"The Id of the Student is {student.Id}", $"The Name of the Student is {student.Name}" }; } } }
上記の例では、studentの値がリクエストの本文に渡され、Studentオブジェクトの対応するプロパティにマップされます。以下は、Postmanを使用したリクエストとレスポンスです。
-
HTMLのid属性とname属性の違いは何ですか?
ID フォーム要素のIDは、単なる識別とは関係なく、要素内に含まれるデータとは関係ありません。 IDは書面で添付され、JavascriptとCSSで使用されます 。 JSメソッドで参照getElementByID() 名前 NAME属性は、ブラウザからサーバーに送信されるHTTPリクエストで変数名として使用され、value属性に含まれるデータに関連付けられます。私たち CSSまたはどのURLでも参照できません JSメソッドで参照getElementByName()
-
novalidate属性とformnovalidate属性の違いは何ですか?
novalidate およびf ormnovalidate 属性は、検証をバイパスするために使用されます。 ノバリデート 属性がフォームに適用され、検証されないようにします。 formnovalidate novalidateを上書きする入力タイプの送信ボタンに適用されます 。検証せずにフォームを送信します。 ノバリデート 属性もブール属性ですが、これを使用しても送信フォームは検証されません。 formnovalidate HTMLの属性は、複数の送信ボタンがあるフォームがある場合に役立ちます。 HTMLnovalidate属性 HTMLのnovalidate属性は、送