2013-02-18 30 views
11

ASP.NET MVCアプリケーションの場合、Html.BeginFormへの呼び出しが@usingで始まる理由を誰かに説明することができますか?ASP.NET MVC Razor、Html.BeginForm、using statement

例 -

@using(Html.BeginForm()){

//Stuff in the form 

}

Iは@using文は名前空間を含むためのものであると思いました。 ありがとう!

答えて

16

Using Statementは、IDisposableオブジェクトを正しく使用するための便利な構文を提供します。 BeginFormヘルパーはIDisposableインターフェイスを実装しているため、usingキーワードを使用できます。その場合、メソッドは文の最後に閉じる</form>タグをレンダリングします。またBeginFormusingせずにブロックを使用することができますが、あなたは、フォームの終わりをマークする必要があります。

@{ Html.BeginForm(); } 
    //Stuff in the form 
@{ Html.EndForm(); } 
4

usingステートメントは、IDisposableオブジェクトのスコープを定義するために使用されます。処分時にフォームのタグを閉じてレンダリングすること

@using (var form = Html.BeginForm()) { 
    //Stuff in the form 

} // here Dispose on form is invoked. 

Html.BeginFormリターンオブジェクト:</form>

using名前空間を含むためには、ディレクティブです。

1

あなたはHtml.BeginFormでusingを使用する場合、ヘルパーは、タグを閉じての呼び出し中に開始タグを発しますBeginFormと、オブジェクトを返すための呼び出しであるIDisposableを実装しています。

ビュー内のステートメントを使用して実行が(中括弧を閉じる)に戻ると、ヘルパーは閉じるフォームタグを出力します。 usingコードはよりシンプルでエレガントです。

Html.BeginFormと組み合わせてusingを使用することは必須ではありません。

使用することもでき

@{ Html.BeginForm(); } 
    <input type="text" id="txtQuery"/> 
    <input type="submit" value="submit"/> 
@{ Html.EndForm(); } 
関連する問題