Jadi, judulnya harus berbicara sendiri.
Untuk membuat komponen yang dapat digunakan kembali dalam ASP.NET MVC, kami memiliki 3 opsi (bisa yang lain belum saya sebutkan):
Tampilan sebagian:
@Html.Partial(Model.Foo, "SomePartial")
Template Editor Kustom:
@Html.EditorFor(model => model.Foo)
Templat Tampilan Kustom:
@Html.DisplayFor(model => model.Foo)
Dalam hal Tampilan / HTML yang sebenarnya, ketiga implementasi itu identik:
@model WebApplications.Models.FooObject
<!-- Bunch of HTML -->
Jadi, pertanyaan saya adalah - kapan / bagaimana Anda memutuskan yang mana dari ketiganya yang akan digunakan?
Yang benar-benar saya cari adalah daftar pertanyaan untuk diri Anda sendiri sebelum membuat, yang jawabannya dapat digunakan untuk memutuskan templat mana yang akan digunakan.
Inilah 2 hal yang saya temukan lebih baik dengan EditorFor / DisplayFor:
Mereka menghormati hierarki model saat memberikan bantuan HTML (misalnya jika Anda memiliki objek "Bar" pada model "Foo" Anda, elemen HTML untuk "Bar" akan dirender dengan "Foo.Bar.ElementName", sementara sebagian akan memiliki " ElementName ").
Lebih kuat, misalnya jika Anda memiliki
List<T>
sesuatu dalam ViewModel Anda, Anda dapat menggunakan@Html.DisplayFor(model => model.CollectionOfFoo)
, dan MVC cukup pintar untuk melihatnya adalah koleksi dan merender tampilan tunggal untuk setiap item (sebagai lawan dari Partial, yang akan membutuhkan eksplisit untuk lingkaran).
Saya juga mendengar DisplayFor membuat templat "baca-saja", tetapi saya tidak mengerti itu - tidak bisakah saya melempar formulir di sana?
Bisakah seseorang memberi tahu saya beberapa alasan lain? Apakah ada daftar / artikel di suatu tempat membandingkan ketiganya?