Html.TextboxとHtml.TextboxForの違いは何ですか?
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
Html.TextBoxとHtml.DropDownListは厳密に型指定されていないため、厳密に型指定されたビューを必要としません。これは、任意の名前をハードコーディングできることを意味します。一方、Html.TextBoxForおよびHtml.DropDownListForは厳密に型指定されており、厳密に型指定されたビューを必要とし、名前はラムダ式から推測されます。
強く型付けされたHTMLヘルパーは、コンパイル時のチェックも提供します。
リアルタイムでは、主に厳密に型指定されたビューを使用するため、対応するビューよりもHtml.TextBoxForおよびHtml.DropDownListForを使用することをお勧めします。
Html.TextBox&Html.DropDownList OR Html.TextBoxFor&Html.DropDownListForを使用しても、最終結果は同じです。つまり、同じHTMLを生成します。
強く型付けされたHTMLヘルパーがMVC2に追加されました。