Di mesin silet saya telah menggunakan LabelFor
metode pembantu untuk menampilkan nama
Namun nama tampilan tersebut sepertinya kurang bagus untuk ditampilkan. jadi saya perlu mengubah nama tampilan saya bagaimana melakukannya ....
@Html.LabelFor(model => model.SomekingStatus, new { @class = "control-label"})
asp.net-mvc-3
html-helper
Palsu
sumber
sumber
Jawaban:
Anda dapat menghias properti model tampilan Anda dengan
[DisplayName]
atribut dan menentukan teks yang akan digunakan:[DisplayName("foo bar")] public string SomekingStatus { get; set; }
Atau gunakan kelebihan lain dari pembantu LabelFor yang memungkinkan Anda menentukan teks:
@Html.LabelFor(model => model.SomekingStatus, "foo bar")
Dan, tidak, Anda tidak dapat menentukan nama kelas di MVC3 seperti yang Anda coba lakukan, karena
LabelFor
helper tidak mendukungnya. Namun, ini akan berfungsi di MVC4 atau 5.sumber
@Html.LabelFor(model => model.SomekingStatus, "something other than foo bar")
Ini adalah pertanyaan lama, tetapi jawaban yang ada mengabaikan masalah serius membuang atribut khusus apa pun saat Anda membuat ulang model. Saya menambahkan jawaban yang lebih rinci untuk mencakup opsi saat ini yang tersedia.
Anda memiliki 3 pilihan:
[DisplayName("Name goes here")]
atribut ke kelas model data. Sisi negatifnya adalah ini dibuang setiap kali Anda membuat ulang model data.Html.LabelFor
. Misalnya@Html.LabelFor(model => model.SomekingStatus, "My New Label", new { @class = "control-label"})
Referensi: https://msdn.microsoft.com/en-us/library/system.web.mvc.html.labelextensions.labelfor(v=vs.118).aspx Kelemahannya adalah Anda harus mengulang label di setiap tampilan.Opsi 3 - Tambahkan Kelas Meta-Data:
Microsoft mengizinkan untuk mendekorasi properti pada kelas Entity Framework, tanpa mengubah kelas yang ada ! Ini dengan memiliki kelas meta-data yang dilampirkan ke kelas basis data Anda (secara efektif merupakan perpanjangan dari kelas EF Anda). Ini memungkinkan atribut ditambahkan ke kelas terkait dan bukan ke kelas itu sendiri sehingga perubahan tidak hilang saat Anda membuat ulang model data .
Misalnya, jika kelas data Anda
MyModel
denganSomekingStatus
properti, Anda dapat melakukannya seperti ini:Pertama-tama deklarasikan kelas parsial dengan nama yang sama (dan menggunakan namespace yang sama), yang memungkinkan Anda menambahkan atribut kelas tanpa diganti:
[MetadataType(typeof(MyModelMetaData))] public partial class MyModel { }
Semua kelas model data yang dihasilkan adalah kelas parsial, yang memungkinkan Anda untuk menambahkan properti dan metode tambahan hanya dengan membuat lebih banyak kelas dengan nama yang sama (ini sangat berguna dan saya sering menggunakannya misalnya untuk menyediakan versi string yang diformat dari jenis bidang lain dalam model ).
Langkah 2: Tambahkan kelas metatadata yang direferensikan oleh kelas parsial baru Anda:
public class MyModelMetaData { // Apply DisplayNameAttribute (or any other attributes) [DisplayName("My New Label")] public string SomekingStatus; }
Referensi: https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.metadatatypeattribute(v=vs.110).aspx
Catatan:
[required]
dll) sehingga Anda mungkin perlu menduplikasi atribut yang ada di kelas Meta-data.sumber
Anda dapat mengubah teks label dengan menghiasi properti dengan
DisplayName
atribut.[DisplayName("Someking Status")] public string SomekingStatus { get; set; }
Atau, Anda dapat menulis HTML mentah secara eksplisit:
<label for="SomekingStatus" class="control-label">Someking Status</label>
sumber
Hiasi properti model dengan atribut DisplayName.
sumber
@ Html.LabelFor (model => model.SomekingStatus, "foo bar")
sumber