ASP.NET MVC 2 Preview 1 中的一项新功能是支持编辑器模板和显示模板的概念,它允许您使用简单的 HTML 帮助程序调用预定义如何呈现给定对象以进行显示或编辑:
<%=Html.EditorFor(customer => customer) %>
<%=Html.DisplayFor(customer => customer) %>
这很酷,但我并没有真正看到这与用于相同目的的局部视图之间的区别。此外,在示例中,我看到编辑器模板不包含实际的表单标签,并且如果我需要为给定的编辑器提供一些客户端功能(比如通过 jQuery),我无法安全地将该代码放入模板,因为我在客户端中添加逻辑的表单上没有静态句柄。在我正在处理的应用程序中,我混合了编辑器模板和部分视图,我渲染它们以编辑内容。根据我创建编辑器的表单的复杂性,我选择了一种方法而不是另一种方法,但这当然会给应用程序增加不希望的不一致程度。
为什么在局部视图上使用模板,反之亦然?此外,当使用编辑器模板时,将客户端逻辑添加到编辑器而不将其复制到使用该编辑器的每个视图中的理想方法是什么?