Html.TextboxとHtml.TextboxForの違いは何ですか?
最終的には両方とも同じHTMLを生成しますが、 Html.TextBoxFor() は、 Html.TextBox がそうではない場合に強く入力されます。
1: @Html.TextBox("Name")
2: Html.TextBoxFor(m => m.Name)
両方が生産します
<input id="Name" name="Name" type="text" />
それで、それは使用に関して何を意味するのでしょうか?
一般的に2つのこと:
TextBoxFor
は、入力名を生成します。通常、これは単なるプロパティ名ですが、複合型のプロパティの場合は、「customer_name」などのアンダースコアを含めることができますTextBoxFor
バージョンを使用すると、コンパイル時チェックを使用できます。したがって、モデルを変更すると、ビューにエラーがあるかどうかを確認できます。一般に、 MVC2で追加 であったHtmlHelpersの厳密に型指定されたバージョンを使用することをお勧めします。
TextBoxFor
は、MVC2で導入された新しいMVC入力拡張です。
新しい強く型付けされた拡張機能の主な利点は、実行時ではなくコンパイル時にエラー/警告を表示することです。
このページをご覧ください。
http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx
IMOの主な違いは、Textboxが厳密に入力されていないことです。 TextboxForは、型付きビューで使用するモデルのwith要素をヘルパーに伝えるパラメーターとしてラムダを取ります。
両方で同じことを実行できますが、可能な場合は型付きビューとTextboxForを使用する必要があります。
Html.TextBox AMD Html.DropDownListは強く型付けされていないため、強く型付けされたビューを必要としません。これは、必要な名前をハードコードできることを意味します。一方、Html.TextBoxForとHtml.DropDownListForは強く型付けされており、強く型付けされたビューを必要とし、名前はラムダ式から推測されます。
厳密に型指定されたHTMLヘルパーは、コンパイル時のチェックも提供します。
リアルタイムでは、主に厳密に型指定されたビューを使用するため、対応するビューよりもHtml.TextBoxForおよびHtml.DropDownListForを使用することを好みます。
Html.TextBox&Html.DropDownList OR Html.TextBoxFor&Html.DropDownListForを使用するかどうかにかかわらず、最終結果は同じです。つまり、同じHTMLを生成します。
強く型付けされたHTMLヘルパーがMVC2に追加されました。