因此,標題應該說明問題。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