2016-05-19 10 views
0

Ich benutze eine Aufzählung, um eine Dropdown-Liste mit Html.EnumDropDownListFor zu füllen, das Problem ist per Konvention die Enum ist alle für das, woran ich gerade arbeite capped, so, wenn es den Tropfen bevölkern geht alles ist bedeckt. Ich schaute nach, ob es einen Weg gab, ein toTitleCase oder sogar toLower zu machen, etwas, das ein wenig weniger lächerlich aussehen würde, aber ich konnte es nicht zum Laufen bringen (toString schreibt stattdessen nur den tatsächlichen HTML, was Sinn macht) .Ändern des Inhalts von EnumDropDownListFor

Gibt es sowieso, dies zu tun, ohne den HTML-Code für eine Dropdown-Liste zu schreiben? Oder muss ich es einfach nur aufsaugen und alles von Hand schreiben? Nur um genau zu klären, was ich machen möchte, würde ich am liebsten alles in TitelCase machen können.

+1

Ich denke, dass dies jedoch nicht möglich ist, Sie wählen Sie eine HTML-Klasse geben könnte, dann eine einfache JavaScript-Code verwenden, um den Inhalt zu ändern, alles zu Titlecase. – AnotherGeek

+1

Sie können immer ein '[Display (Name =" xxx ")]' zu jedem Aufzählungswert hinzufügen, wobei 'xxx' der Wert in TitleCase ist (und Leerzeichen enthalten kann). Ansonsten verwende einfach ein View-Modell mit einer eigenen Enum, in der die Werte in TitleCase –

+0

sind. Ich hatte nicht über Display nachgedacht, das ist perfekt, danke! –

Antwort

0

Dies das Problem behoben

[Display(Name="White")] 
WHITE, 
[Display(Name = "Black")] 
BLACK, 
[Display(Name = "Green")] 
GREEN, 
[Display(Name = "Yellow")] 
YELLOW, 
[Display(Name = "Specialty")] 
SPECIALTY, 
[Display(Name = "Oolong")] 
OOLONG, 
[Display(Name = "Rooibos")] 
ROOIBOS, 
[Display(Name = "Pu-erh")] 
PUERH, 
[Display(Name = "Herbal")] 
HERBAL 
Verwandte Themen