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?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage