Czy możliwe jest użycie zmiennej dla `[Display (Name =„ Something ”)]` `annotacji danych w MVC3 (C #)

nie wiem dlaczego, ale adnotacja danych w MVC3 nalega na posiadanie stałych wartości, których po prostu nie rozumiem w przypadku komunikatów o błędach i nazw wyświetlanych. Uwielbiam te adnotacje, są one tak łatwe w użyciu i tak potężne, ale co, jeśli potrzebujesz obsługi wielu języków?

Wyobraź sobie, że mam następujący model:

public class Person
{
    public string First_Name { get; set; }
}

Jeśli nie zmienię niczego i użyję widoków CRUD, które MVC3 zbuduje dla mnie, otrzymuję etykietę obok pól tekstowych z napisem „Imię”, więc dodam adnotację danych, aby zmienić wyświetlaną nazwę w następujący sposób:

public class Person
{
    [Display(Name="First name")]
    public string First_Name { get; set; }
}

Który działa dobrze. Ale chcę podać inną nazwę wyświetlaną w zależności od języka użytkownika, korzystając z wcześniejszej funkcjiGetDisplayName(string ToGet, string Language) który po prostu zwraca interesujący mnie ciąg, ale jeśli zmienię adnotację danych na to:

public class Person
{
    [Display(Name=GetDisplayName("First_Name", "English"))]
    public string First_Name { get; set; }
}

Następnie otrzymuję błąd kompilatora informujący mnie, że adnotacja wymaga stałych wartości, DLACZEGO ????

Czy ktoś zna sposób na osiągnięcie tego, co próbuję zrobić? Dzięki

AKTUALIZACJA

Ok, wydaje się, że najlepszym sposobem na to jest użycie.resx pliki zasobów zgodnie z kilkoma odpowiedziami poniżej oraz te z innych postów. który działa świetnie w większości.

Czy ktoś wie, jak mogę poprosić o zasób o nazwie zmiennej? nie w kontekście atrybutów danych tym razem, ale tylko w kontrolerach i widokach.

Zasadniczo w momencie, gdy docieram do zasobów@Resources.SomeKey ale chciałbym móc użyć tego w funkcji w@Resources["SomeOtherKey"] gdzieSomeOtherKey to dynamicznie generowany ciąg.

questionAnswers(5)

yourAnswerToTheQuestion