只是想知道人们如何以及何时使用编辑器/显示模板与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>   

但是,如果我选择第二个选项,那么使用中间编辑器就有很多意义。

我很感兴趣人们在这里使用哪些模式...有什么想法?

欢呼安东尼

有帮助吗?

解决方案

编辑和显示是MVC 2中最有力的方面,我认为应尽可能多地使用和滥用。

跳到Brad Wilsons博客,然后查看如何扩展对象模板,以快速从装饰有属性的ViewModels刷出基于约定的屏幕:http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-5-master-master-page-templates.html

我在当前项目中使用了此技术,到目前为止,还没有为单个屏幕编写一系列HTML。 :d

其他提示

我非常喜欢第二个。

优雅,使您摆脱了那个笨拙的琴弦:)

我已经修改了(实际上,在修改过程中)T4 Edit, Create, , 和 View 吐出我想要的代码的模板。该代码不使用任何 DisplayFor 或者 EditorFor 方法。我没有为这些方法挖掘代码,但是我可以肯定的是,您会看到其中正在进行的一些反射。我的修改模板目前正在生成 TextBoxFor, DropDownListFor, , 和 CheckBoxFor.

如果您愿意,您可以在JFAR提到的Brad Wilson帖子中使用该方法。至少我会使用模板吐出每个字段的代码 DisplayFor 或者 EditorFor 因此,您可以稍后返回可以更改为特定编辑器加上输入字段的任何必要属性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top