因此,标题应该说明问题。ASP.NET MVC 3 - 部分vs显示模板与编辑器模板
要在ASP.NET MVC创建可重用的组件,我们有3个选项(可能是其他人我没有提到):
管窥:
@Html.Partial(Model.Foo, "SomePartial")
自定义编辑器模板:
@Html.EditorFor(model => model.Foo)
自定义显示模板:
@Html.DisplayFor(model => model.Foo)
在实际查看/ HTML方面,所有三种实现是相同的:
@model WebApplications.Models.FooObject
<!-- Bunch of HTML -->
所以,我的问题是 - 当/你如何决定三个使用哪一个?
我真正想要的是在创建一个问题之前问自己的问题列表,可以使用这些答案来决定要使用哪个模板。
这里的两件事情我已经找到更好EditorFor/DisplayFor:
他们尊重模型层次渲染HTML佣工(例如,当你有你的“富”模型中的“酒吧”的对象时, “Bar”的HTML元素将以“Foo.Bar.ElementName”呈现,而部分将具有“ElementName”)。
更强大,例如,如果你有在你的视图模型东西
List<T>
,你可以使用@Html.DisplayFor(model => model.CollectionOfFoo)
和MVC是足够聪明,看到这是一个收集和呈现出每个项目单显示(而不是一个局部,这将需要一个明确的for循环)。
我也听过DisplayFor呈现“只读”模板,但我不明白 - 我不能在那里扔一个表单吗?
有人能告诉我其他一些原因吗?比较三个地方是否有列表/文章?
后面的编辑和显示模板的概念的明确定义的partialview不加前缀模式文档为asp.net mvc 2.模板是遵循特定约定的偏见。使模板比旧部分更好或更差的情况几乎严格取决于该约定是否值得遵守您的应用程序。 – 2011-02-18 04:41:00
+1好问题。 – 2013-08-24 19:53:06