Was bedeutet die EnumDataType attribute in ASP.NET MVC?
Habe ich mit string
Eigenschaften auf einige meiner model-Objekte repräsentieren enums. Ich bin nur mit strings, da gibt es noch keine enum-Unterstützung in Entity Framework Code First. Wie auch immer, ich bemerkte, dass es ein Attribut in System.ComponentModel.DataAnnotations
genannt EnumDataType
. Ich habe versucht, dieses Attribut, aber es scheint keinen Einfluss auf irgendetwas.
Erwähnen sollte ich noch, dass mein oberstes Ziel ist es, über die entsprechenden drop-down-Liste erscheinen, für jede enum-Typ in einen "erstellen" oder "Bearbeiten" - Ansicht. Ich dachte, vielleicht EnumDataType
wäre dies einfacher in einer auto-Gerüst-Szenario, aber ich bin mir nicht sicher, ob dies der Fall ist.
Drei Fragen:
- Hat
EnumDataType
einen Zweck haben, in ASP.NET MVC? - Wenn ja, was tut Sie?
- Muss ich mein Modell-Eigenschaften
int
(stattstring
) zu nutzenEnumDataType
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
EnumDataType
ist derzeit nur unterstützt von ASP.NET Dynamic Data sites (in .NET 4.0). Sie können in der Regel bauen Sie Ihre eigene benutzerdefinierte HTML-helper, die die Eigenschaft überprüfen Sie, ob es enthält das Attribut (durch Reflexion) und erstellt drop-down mit Werten aus der verknüpften enum.Die beste Lösung, die ich fand, war das kombinieren der dieser blog mit diese Antwort. Dies macht sowohl die view-und model-sehr gut lesbar und wartbar.
Siehe meine ausführliche Antwort hier.
Modell:
Anzeigen:
MVC 3 hat keine Logik zu behandeln
EnumDataTypeAttribute
.Entweder MVC3 oder EF4.1 CodeFirst erscheint die Eigenschaften überprüft werden mit diesem Attribut. Handlich durch das fehlen von enum-Unterstützung in EF momentan, das heißt, Sie können das Attribut auf eine integer-Eigenschaft.