Apa perbedaan antara DisplayName
atribut dan Display
atribut dalam ASP.NET MVC?
c#
asp.net-mvc
data-annotations
displayattribute
.net-attributes
Ghooti Farangi
sumber
sumber
DisplayName
mengaturDisplayName
metadata model. Sebagai contoh:dan jika Anda menggunakan dalam pandangan Anda hal berikut:
itu akan menghasilkan:
Display
melakukan hal yang sama, tetapi juga memungkinkan Anda untuk mengatur properti metadata lainnya seperti Nama, Deskripsi, ...Brad Wilson memiliki posting blog yang bagus yang mencakup atribut-atribut itu.
sumber
Saya pikir jawaban saat ini mengabaikan menyoroti perbedaan penting dan signifikan yang sebenarnya dan apa artinya untuk penggunaan yang dimaksud. Meskipun keduanya mungkin bekerja dalam situasi tertentu karena implementer mendukung keduanya, mereka memiliki skenario penggunaan yang berbeda. Keduanya dapat membuat anotasi properti dan metode tetapi berikut adalah beberapa perbedaan penting:
DisplayAttribute
System.ComponentModel.DataAnnotations
namespace diSystem.ComponentModel.DataAnnotations.dll
majelisDescription
atauShortName
DisplayNameAttribute
System.ComponentModel
namespace diSystem.dll
Majelis dan namespace berbicara tentang penggunaan yang dimaksudkan dan dukungan pelokalan adalah penendang besar.
DisplayNameAttribute
telah ada sejak .NET 2 dan tampaknya telah lebih ditujukan untuk penamaan komponen pengembang dan properti dalam kisi properti warisan, tidak begitu banyak untuk hal-hal yang terlihat oleh pengguna akhir yang mungkin memerlukan lokalisasi dan semacamnya.DisplayAttribute
diperkenalkan kemudian di .NET 4 dan tampaknya dirancang khusus untuk memberi label anggota kelas data yang akan terlihat oleh pengguna akhir, sehingga lebih cocok untuk DTO, entitas, dan hal-hal lain semacam itu. Saya merasa agak disayangkan bahwa mereka membatasinya sehingga tidak dapat digunakan di kelas.EDIT: Sepertinya sumber .NET Core terbaru memungkinkan
DisplayAttribute
untuk digunakan di kelas sekarang juga.sumber
Mungkin ini khusus untuk .net core, saya menemukan DisplayName tidak akan berfungsi tetapi Display (Name = ...) tidak. Ini dapat menyelamatkan orang lain dari pemecahan masalah yang terlibat :)
sumber