So reduzieren Sie die Codeduplizierung in der ASP.NET MVC-Ansicht bei der Arbeit mit Flags enum
Verzeih meine Unwissenheit. Ich habe nicht viel MVC-Arbeit geleistet, und ich bin mir sicher, dass es einen besseren Weg gibt, dies zu tun, aber ich kann ihn anscheinend nicht finden. Ich habe eine Flags-Enumeration wie diese:
[Flags]
public enum Services
{
Foo = 1,
Bar = 2,
Meh = 4
}
Und eine SelectedServices-Eigenschaft in meinem Modell, die einen Wert dieses Typs aufweist. In der Ansicht habe ich ein Kontrollkästchen für jeden möglichen Dienst. Ich habe die Bindungslogik folgendermaßen implementiert:
<div><label><input type="checkbox" name="services" value="@((int)Services.Foo)"
@if(Model.SelectedServices.HasFlag(Services.Foo))
{
<text>checked</text>
}
/>Foo</label></div>
<div><label><input type="checkbox" name="services" value="@((int)Services.Bar)"
@if(Model.SelectedServices.HasFlag(Services.Bar))
{
<text>checked</text>
}
/>Bar</label></div>
Und so weiter. Was funktioniert, ist aber wirklich schrecklich chaotisch.
Es muss sicher einen besseren Weg geben, dies zusammenzufassen - aber ich habe keine Ahnung, was das relevante Konzept in MVC ist?