Mendapatkan Nama Paparan daripada Sumber
Dalam aplikasi setempat, pembangun sering menghadapi keperluan untuk memaparkan label mesra pengguna untuk sifat model. Walaupun atribut DisplayName membenarkan spesifikasi nama paparan statik, mungkin terdapat senario di mana nama ini perlu diambil secara dinamik daripada sumber luaran, seperti fail sumber.
Malangnya, menggunakan atribut DisplayName sahaja tidak menyediakan keupayaan untuk menentukan nilai dinamik daripada sumber. Ralat pengkompil yang dihadapi, "Argumen atribut mestilah ungkapan malar, jenis ungkapan atau ungkapan penciptaan tatasusunan bagi jenis parameter atribut," menunjukkan bahawa argumen yang disediakan mestilah nilai statik.
Selesaikan dengan .NET 4 dan MVC 3
Untuk aplikasi yang menggunakan MVC 3 dan .NET 4, penyelesaian wujud melalui penggunaan atribut Paparan dikemas kini yang terdapat dalam ruang nama System.ComponentModel.DataAnnotations. Atribut ini memanjangkan kefungsian pendahulunya, termasuk keupayaan untuk memanfaatkan penyetempatan.
Untuk menggunakan atribut ini, ubah suai model anda seperti berikut:
public class MyModel { [Required] [Display(Name = "labelForName", ResourceType = typeof(Resources.Resources))] public string name { get; set; } }
Nota: Penyelesaian ini memerlukan fail sumber ditandakan sebagai 'Sumber terbenam' dan menggunakan 'ResXFileCodeGenerator' alat tersuai. Selain itu, App_GlobalResources atau App_LocalResources tidak boleh digunakan dengan MVC.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Secara Dinamik Nama Paparan daripada Fail Sumber dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!