Html.Textbox VS Html.TextboxFor


回答:


117

最終的にはどちらも同じHTMLを生成しますが、Html.TextBoxFor()Html.TextBoxとは異なり、厳密に型指定されています。

1:  @Html.TextBox("Name")
2:  Html.TextBoxFor(m => m.Name)

両方が生成されます

<input id="Name" name="Name" type="text" />

それで、それは使用の面で何を意味しますか?

一般に2つのこと:

  1. 入力TextBoxForすると、入力名が生成されます。通常、これはプロパティ名ですが、複合型のプロパティには「customer_name」などのアンダースコアを含めることができます
  2. 型指定されたTextBoxForバージョンを使用すると、コンパイル時のチェックを使用できます。したがって、モデルを変更すると、ビューにエラーがないかどうかを確認できます。

MVC2で追加されたHtmlHelpersの厳密に型指定されたバージョンを使用することは、一般的にはより良いプラクティスと見なされています。



7

IMOの主な違いは、Textboxが厳密に型指定されていないことです。TextboxForは、型付きビューで使用するモデルのwith要素をヘルパーに指示するパラメーターとしてラムダを取ります。

両方で同じことを実行できますが、可能な場合は型付きビューとTextboxForを使用する必要があります。


3

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に追加されました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.