私はMVC3かみそりの例を見て、html.editorが利用されているのを見て、このフォーラムで多くのことについて質問しました。なぜ使用できないhtml.textboxfor
のpasswordfor
ですか?ありがとう
2 に答える
EditorForには、データ型に関連付けられたエディターをレンダリングしようとするという利点があります。
例:独自のエディターテンプレートをデザインする場合、プロパティのタイプまたはUIHintに基づいて自動的にレンダリングされます。
便利なエディターテンプレートは、プロパティのタイプが。の場合に日付ピッカーを生成するテンプレートですDateTime
。
'smart'EditorForがプロパティの'best'エディターを生成する他のシナリオもいくつかあります。このような例は<textarea>
、プロパティにタグを付けるときにレンダリングする場合です。MultilineText
TextBoxForとPasswordForの使用は、「特別なエディター」を必要としない場合にはまったく問題ありません。HtmlAttributesを設定する必要がある場合、それはあなたの人生を単純化するかもしれません。
これについての疑問を明確にするために、MVCとRazorのHtml.TextboxForとHtml.EditorForの違いを参照してください。
HtmlTextboxForは常に作成します
textbox (<input type="text" ...).
EditorForはタイプとメタ情報を調べ、指定した別のコントロールまたはテンプレートをレンダリングできます。
たとえば、DateTimeプロパティの場合、jQueryDatePickerを使用するテンプレートを作成できます。
テキストボックスをdivでラップするようにレンダリングする方法に何かを変更する場合は、カスタムエディターテンプレート(~/Views/Shared/EditorTemplates/string.cshtml)
を作成するだけで、アプリケーション内のすべてのテキストボックスがこの変更の恩恵を受けますが、ハードコーディングしているHtml.TextBoxFor
場合は、どこでもそれを変更します。