Extrahieren Anzeigename und Beschreibung Attribut aus einem HTML-Helper

7

Ich baue einen benutzerdefinierten HTML.LabelFor Helfer, der so aussieht:

%Vor%

Um den richtigen Namen für die Eigenschaft zu erhalten, verwende ich den folgenden Code:

%Vor%

Und auf der Eigenschaft der ModelView Klasse habe ich:

%Vor%

Das Problem ist, dass ich auch eine Beschreibung brauche. Es gibt ein Attribut namens Display und das hat Name und Beschreibung, aber ich sehe nicht, wie man das mit der Metadatenvariablen im obigen Code extrahiert?

    
Banshee 11.02.2011, 20:42
quelle

1 Antwort

19

Haftungsausschluss: Folgendes funktioniert nur mit ASP.NET MVC 3 (siehe das Update unten, wenn Sie frühere Versionen verwenden)

Angenommen, das folgende Modell:

%Vor%

Und die folgende Ansicht:

%Vor%

In Ihrem benutzerdefinierten Hilfsprogramm können Sie diese Informationen aus den Metadaten abrufen:

%Vor%

Hinweis: Die Verwendung von [DisplayName("foo")] und [Display(Name = "bar")] für dieselbe Modelleigenschaft ist redundant, und der im Attribut [Display] verwendete Name hat Vorrang in metadata.DisplayName .

UPDATE:

Meine vorherige Antwort funktioniert nicht mit ASP.NET MVC 2.0. Es gibt Paare von Eigenschaften, die nicht standardmäßig mit DataAnnotations in .NET 3.5 gefüllt werden können, und Description ist einer davon. Um dies in ASP.NET MVC 2.0 zu erreichen, können Sie einen benutzerdefinierten Modellmetadatenanbieter verwenden:

%Vor%

was Sie in Application_Start registrieren würden:

%Vor%

und dann sollte der Helfer wie erwartet funktionieren:

%Vor%     
Darin Dimitrov 11.02.2011, 20:51
quelle