5

私はMVC3かみそりの例を見て、html.editorが利用されているのを見て、このフォーラムで多くのことについて質問しました。なぜ使用できないhtml.textboxforpasswordforですか?ありがとう

4

2 に答える 2

9

EditorForには、データ型に関連付けられたエディターをレンダリングしようとするという利点があります。

例:独自のエディターテンプレートをデザインする場合、プロパティのタイプまたはUIHintに基づいて自動的にレンダリングされます。

便利なエディターテンプレートは、プロパティのタイプが。の場合に日付ピッカーを生成するテンプレートですDateTime

'smart'EditorForがプロパティの'best'エディターを生成する他のシナリオもいくつかあります。このような例は<textarea> 、プロパティにタグを付けるときにレンダリングする場合です。MultilineText

TextBoxForとPasswordForの使用は、「特別なエディター」を必要としない場合にはまったく問題ありません。HtmlAttributesを設定する必要がある場合、それはあなたの人生を単純化するかもしれません。

于 2012-04-21T03:50:26.417 に答える
6

これについての疑問を明確にするために、MVCとRazorのHtml.TextboxForとHtml.EditorForの違いを参照してください。

HtmlTextboxForは常に作成しますtextbox (<input type="text" ...).

EditorForはタイプとメタ情報を調べ、指定した別のコントロールまたはテンプレートをレンダリングできます。

たとえば、DateTimeプロパティの場合、jQueryDatePickerを使用するテンプレートを作成できます。

テキストボックスをdivでラップするようにレンダリングする方法に何かを変更する場合は、カスタムエディターテンプレート(~/Views/Shared/EditorTemplates/string.cshtml)を作成するだけで、アプリケーション内のすべてのテキストボックスがこの変更の恩恵を受けますが、ハードコーディングしているHtml.TextBoxFor場合は、どこでもそれを変更します。

于 2012-04-21T04:00:10.313 に答える