2010-02-27 18 views
24

C# ile MVC web uygulaması yapıyorum. Site çok dilli olacağından, kendi ResourceManager'ımı uyguladım. Bu sınıf, gerekli kaynak dizelerini, akımları iplik kültürüne bağlı olarak bir veritabanından/önbellekten almanın sorumluluğunu taşır ve şu ana kadar gayet iyi çalışır.DataAnnotations nasıl kullanılır ErrorMessageResourceName özel Kaynak Çözümüyle

Sorunum, örneğin, Özellik Özellik özelliğini kullanarak, doğrulama hata iletilerini almak için özel ResourceManager çözümümü kullanmak istiyorum. Bu yapılabilir mi?

cevap

49

RequiredAttribute kullanmasına izin veren bir custom resource manager:

[Required(
    ErrorMessageResourceType = typeof(CustomResourceManager), 
    ErrorMessageResourceName = "ResourceKey")] 
public string Username { get; set; } 

GÜNCELLEME:

public class CustomRequiredAttribute : RequiredAttribute 
{ 
    public override string FormatErrorMessage(string name) 
    { 
     return YourCustomResourceManager.GetResource(name); 
    } 
} 
+1

Benim ResourceManager gerçekten özel bir çözümdür:

başka olasılık da özel özellik yazmaktır ve ne MVC içine herhangi bir şekilde bağlanır ne de t dışında herhangi bir arabirimi uygular o bir tane yarattım. ResourceHandler'imin bu şekilde kullanılabilmesi için hangi değişiklikler gerekiyor? – Mats

+0

Lütfen güncellemeye bakın. –

+0

Özel özellikler çalışmak için başka bir şey gerekiyor mu? Bunu denedim ve işe yaramıyor. Yeni özellik türünü kullanmak için kendi EditorFor uzantı yöntemimi oluşturmam gerekir mi? –

İlgili konular