7

人々がいつどのようにエディター/ディスプレイテンプレートとHtmlヘルパーを使用しているか疑問に思っています。具体的には、エンティティをレンダリングするのではなく、さまざまなUIコントロールをレンダリングする際の使用について話します。

たとえば、私は次のATMのようなものを持っています:

<tr>
    <th><%= Html.LabelFor(x => x.ActivityTypeId) %></th>
    <td><%= Html.EditorFor(x => x.ActivityTypeList, "MultiSelectDropDownList")%></td>
</tr>
<tr>
    <th><%= Html.LabelFor(x => x.Name) %></th>
    <td><%= Html.EditorFor(x => x.Name) %></td>
</tr>
<tr>
    <th><%= Html.LabelFor(x => x.Description) %></th>
    <td><%= Html.DisplayFor(x => x.Description, "DisplayString")%></td>
</tr>   

しかし最近、私はこれを行うべきかどうか疑問に思っています:

<tr>
    <th><%= Html.LabelFor(x => x.ActivityTypeId) %></th>
    <td><%= Html.MultiSelectDropDownList(x => x.ActivityTypeList)%></td>
</tr>
<tr>
    <th><%= Html.LabelFor(x => x.Name) %></th>
    <td><%= Html.EditorFor(x => x.Name) %></td>
</tr>
<tr>
    <th><%= Html.LabelFor(x => x.Description) %></th>
    <td><%= Html.DisplayString(x => x.Description)%></td>
</tr>   

しかし、この2番目のオプションを使用する場合、ミドルエディターを使用する意味があります... Html.Textboxを使用するのは得策であり、好きなhtmlプロパティを設定できるという利点があります。

ここで人々がどのようなパターンを使用しているか興味があります...何かアイデアはありますか?

乾杯アンソニー

4

3 に答える 3

5

EditorForとDisplayForはMVC2の最も強力な側面であり、私の意見では、可能な限り使用および悪用する必要があります。

Brad Wilsonsブログにアクセスして、オブジェクトテンプレートを拡張し、属性で装飾されたViewModelsからコンベンションベースの画面をすばやく作成する方法を確認してください:http: //bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2 -templates-part-5-master-page-templates.html

私は現在のプロジェクトでこの手法を使用していますが、これまでのところ、個々の画面に対して1行のHTMLが記述されていません。:D

于 2010-02-05T02:50:01.580 に答える
0

私は2番目のものがとても好きです。

それはエレガントで、そのバグのある文字列からあなたを解放します:)

于 2010-02-05T03:39:30.177 に答える
0

EditT4 、、、Createおよびテンプレートを変更して(実際には、変更の過程で)、View必要なコードを吐き出しました。DisplayForそのコードはまたはEditorForメソッドを使用しません。私はこれらのメソッドのコードを掘り下げていませんが、そこでいくつかの反省が起こっているのを見ることができると確信しています。私の変更したテンプレートは現在、、、およびを生成TextBoxForDropDownListForますCheckBoxFor

必要に応じて、jfarが言及したBradWilsonの投稿にある方法を使用できます。少なくとも、テンプレートに各フィールドのコードを吐き出させるDisplayForEditorFor、後で戻って特定のエディターに変更し、入力フィールドに必要な属性を追加することができます。

于 2010-02-10T21:53:29.583 に答える