2017-03-11 1 views
0

私はMVCに新しいですし、私は、フォームMVC 5 [HttpPost]属性またはフォームタグ内に投稿しますか?

<form action="" method="post"> 
    <input type="text" name="something" value="something" /> 
    <input type="text" name="something" value="something"/> 
    <input type="submit" value="Submit" /> 
</form> 

内部属性[HttpPost]とPOSTメソッドの違いは何でしょう不思議でしたか?彼らは同じものですか...私はここでmethod="post"

答えて

1
<form action="" method="post"> </form> 

はないASP.NET MVCの事で混乱しています。これは通常のHTML form tag specificationです。フォームが送信されると、フォームデータがクエリーストリング値として送信されるGETではなく、POSTメソッドが使用されることがわかります。 POSTを使用すると、フォームデータはリクエストBODYの一部になります。

ASP.NET MVCの世界では、属性デコレータ[HttpPost]は、(このデコレータを使用した)アクションメソッドが "POST"タイプのクライアント(ブラウザ)からの要求を処理することをフレームワークに伝えます。フォームメソッド)。これは、フレームワークが要求本体からデータを読み込み、必要に応じて使用するのに役立ちます(Modelバインディングなどの場合)

要するに、どちらも異なるものです。 1つはクライアント側で、もう1つはサーバーコード上にあります。しかし、通常は、それを一緒に使用して、送信されたフォームを処理するクライアント側のフォームとサーバー側のメソッドを構築します。

+0

'[HttpPost]'は、アクションフィルタとして知られています。他のHTTPメソッドには他にもあります。 – juunas

+0

@Shyju私は[HttpGet]を使うのと同じようにデフォルトでそれを知っています... [HttpPost]を書かないとどうなりますか?私はこの部分が好きです。これは、フレームワークがリクエスト本体からデータを読み込み、必要に応じて(モデルバインディングなどのために)使用するのに役立ちます。 – john

+0

私が答えているのと同様に、GETを使用するときは、POSTメソッドを&を使用するときにフォーム本体のデータがサーバーに送信され、クエリ文字列のキー値(ブラウザのURLに表示されます)としてフォームデータが送信されます。サーバーは、フォームデータをどこから読み取るべきかを知っている必要があります。 – Shyju

関連する問題