人们如何使用编辑器/显示模板与Html Helpers?

问题描述:

想知道如何以及何时人们使用编辑器/显示模板与Html Helpers。具体来说,我在谈论它在渲染不同的UI控件而不是渲染实体时的使用。人们如何使用编辑器/显示模板与Html Helpers?

举例来说,我有类似如下的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> 

但是,如果我用这个第二个选项去是否有很多使用中间编辑器的要点......我只是使用Html.Textbox而已,并且能够设置我喜欢的任何html属性。

我感兴趣的是什么样的人在这里使用...任何想法?

干杯 安东尼

EditorFor和DisplayFor是MVC 2的最有力的方面,在我看来,应使用和滥用尽可能。

跃过布拉德·威尔逊博客,并检查了如何扩展对象模板快速从的ViewModels饰属性鞭打根据惯例屏幕: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-5-master-page-templates.html

我使用这种技术在当前项目到目前为止,还没有为单个屏幕编写一行HTML。 :D

我非常喜欢第二个。

它的优雅和释放您从buggous串:)

我已经修改了(实际上,在修改的过程中)的T4 EditCreate,并View模板吐出我想要的代码。该代码不使用任何DisplayForEditorFor方法。我还没有挖掘出这些方法的代码,但我相当肯定你会看到一些反射在那里发生。我修改的模板目前生成TextBoxFor,DropDownListForCheckBoxFor

如果您愿意,您可以使用jfar提到的Brad Wilson文章中的方法。至少我会让模板为每个字段使用DisplayForEditorFor吐出代码,以便稍后返回时可以更改为特定的编辑器,并为输入字段添加任何必需的属性。