Wie erstelle ich eine Auswahlliste mithilfe von Kontrollkästchen in ASP.NET MVC?

8

Ich habe eine Datenbanktabelle, die aufzeichnet, auf welche Veröffentlichungen ein Benutzer zugreifen darf. Die Tabelle ist sehr einfach - sie speichert einfach Benutzer-ID / Publikations-ID-Paare:

%Vor%

Das Vorhandensein eines Datensatzes für einen bestimmten Benutzer & amp; Veröffentlichung bedeutet, dass der Benutzer Zugriff hat; das Fehlen einer Aufzeichnung impliziert keinen Zugriff.

Ich möchte meinen Admin-Benutzern einen einfachen Bildschirm zeigen, mit dem sie konfigurieren können, auf welche Publikationen ein Benutzer zugreifen kann. Ich möchte eine Checkbox für jede der möglichen Publikationen anzeigen und überprüfen, welche der Benutzer derzeit zugreifen können. Der Administrator kann dann eine beliebige Anzahl von Veröffentlichungen aktivieren oder deaktivieren und das Formular absenden.

Es gibt verschiedene Publikationstypen, und ich möchte die ähnlich typisierten Publikationen zusammen gruppieren - also brauche ich Kontrolle darüber, wie die Publikationen präsentiert werden (ich möchte nicht nur eine flache Liste haben).

Mein Ansichtsmodell muss natürlich eine Liste aller Publikationen haben (da ich sie alle anzeigen muss, unabhängig von der aktuellen Auswahl), und ich brauche auch eine Liste der Publikationen, auf die der Benutzer aktuell Zugriff hat. (Ich bin mir nicht sicher, ob ich mit einer einzelnen Liste besser wäre, in der jeder Artikel die Veröffentlichungs-ID und ein Ja / Nein-Feld enthält.).

Aber das ist soweit ich habe. Ich habe wirklich keine Ahnung, wie man das an einige Checkboxen bindet. Wo fange ich an?

    
Gary McGill 27.03.2010, 21:43
quelle

1 Antwort

19

Das Linq to SQL Modell für Ihr Problem sieht etwa so aus:

Alttext http://i39.tinypic.com/m78d1y.jpg

Zuerst benötigen wir einige Hilfsobjekte in unserem Datenmodell:

%Vor%

Erstellen wir nun ein Repository , das folgendermaßen aussieht:

%Vor%

Und ein Controller , der folgendermaßen aussieht:

%Vor%

Die Indexansicht sieht folgendermaßen aus:

%Vor%

Und die Ansicht auswählen sieht folgendermaßen aus:

%Vor%

Hier sind einige Screenshots.

Alttext http://i43.tinypic.com/2yl07kw.jpg

alt text http://i44.tinypic.com/mhulua.jpg

Das Kontrollkästchen in der oberen linken Ecke ist das Kontrollkästchen Alle auswählen / Keine auswählen .

    
Robert Harvey 28.03.2010, 21:02
quelle