javascript - ASP.NET MVC 2 - 何时使用模板与何时使用局部 View

标签 javascript asp.net-mvc dry partial-views

ASP.NET MVC 2 Preview 1 中的一项新功能是支持编辑器模板和显示模板的概念,这允许您使用简单的 HTML 帮助程序预定义给定对象的显示方式或编辑方式调用:

<%=Html.EditorFor(customer => customer) %>
<%=Html.DisplayFor(customer => customer) %>

这很酷,但我真的看不出它与用于相同目的的局部 View 之间的区别。此外,在示例中我看到编辑器模板不包含实际的表单标签,如果我需要为给定的编辑器提供一些客户端功能(比如通过 jQuery),我不能安全地将代码放在模板,因为我在客户端中添加逻辑的表单上没有静态句柄。在我正在处理的应用程序中,我混合了编辑器模板和部分 View ,我渲染它们来编辑内容。根据表单的复杂性,我正在创建一个编辑器,因为我选择了一种方法而不是另一种方法,但这当然会增加应用程序的不一致性。

为什么在局部 View 上使用模板,反之亦然?此外,在使用编辑器模板时,将客户端逻辑添加到编辑器而不将其复制到使用该编辑器的每个 View 的理想方式是什么?

最佳答案

ScottGu 在他的 blogpost about MVC V2 中解释了其中的一些内容.

据我所知,这将为您传递给助手的对象的每个属性创建输入。所以如果你有这个对象:

public class Customer
{
    public string Name { get; set; }
    [UIHint("MyCoolCalendar")]
    public DateTime CoolDate { get; set; }
}

然后创建一个编辑器:

<%= Html.EditorFor(customer => customer) %>

它将为客户名称生成一个文本输入,为 CoolDate 生成一个 MyCoolCalendar(这是一个自定义控件),而无需编写自定义控件来包装整个对象。它会自动从属性的类型/uihint 中推断出控件的类型。至少这是我在没有时间测试的情况下所理解的。

关于javascript - ASP.NET MVC 2 - 何时使用模板与何时使用局部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1308294/

相关文章:

javascript - 如何在 Javascript 中删除 pre 上的空行或空格?

javascript - jQuery 添加类(如果其他地方存在)

php - Codeigniter 如何设置 API key 和资源 URL 以便在应用程序中轻松访问

asp.net-mvc - 我应该如何对从 Controller 发送电子邮件进行单元测试?

javascript - 持久化 js 用户控件状态

iphone - 定义相同功能的两个委托(delegate)?

javascript - 闭包 - R 和 Javascript 之间的区别

javascript - meteor JS : Timing of Accessing MongoDB affects the result of the Access

javascript - 在 Extjs 中删除 GridPanel 的 headertoolbar

asp.net-mvc - 当您从非AD帐户调用UserPrincipal.Current.GivenName时会发生什么?