Ich habe ein ASP.NET MVC-Projekt in C# mit Forms Authentication und Active Directory ist der Mitgliedschaftsanbieter (Benutzer melden sich mit ihrer vorhandenen UID/Pwd). Ich möchte jedoch, dass die Rollen von aspnet_Roles (die Standardtabelle, die von der Anwendung erstellt wird) bereitgestellt werden. In meiner Web.config habe ich: mit Voreinstellung für diesen Knoten.Liste der verfügbaren Rollen von DB als Checkboxen anzeigen, wie NerdDinner mit Ländern
Ich folgte erfolgreich der NerdDinner Beispielanwendung PDF und möchte verwenden, was ich gelernt habe. In meiner App verwende ich das Repository-Muster genau wie NerdDinner. In NerdDinner wird gezeigt, wie eine Helper-Methode zum Auffüllen einer DropDownList verwendet wird. Ich würde gerne dasselbe machen, aber anstatt Länder und DropDown möchte ich Rollen von einem Tisch ziehen und Checkboxen füllen.
In meinem UsersController.cs ich habe:
//
// ViewModel Classes
public class UserFormViewModel
{
// properties
public User User { get; private set; }
public SelectList Roles { get; private set; }
// Constructor
public UserFormViewModel(User user)
{
User = user;
Roles = new SelectList(Roles.All,); //this is where I have problems
}
}
Aus meiner Sicht habe ich (was natürlich nicht funktioniert):
<ul>
<% foreach (var role in Roles as IEnumerable<SelectListItem>)) { %>
<li><%= Html.CheckBox(role.ToString())%> <%= role.ToString() %></li>
<% } %>
</ul>
P. S. Ich bin ein Neuling zu .NET, aber ich liebe es! Korrigiere mich, wenn ich falsch liege, aber ich denke, dass dieses Problem mit Sammlungen und Typdefinitionen zu tun hat?
Ich bin auch vertraut mit der Verwendung des ASP.NET-Konfigurationstools zum Hinzufügen von Rollen und Benutzern, aber ich möchte einen benutzerdefinierten User Admin-Abschnitt erstellen.
Hey Morph Ich glaube, es wäre: <% = Html.CheckBox (role.ToString(), Roles.IsUserInRole (Model.User.UserName, role.ToString()))%> aber wie würde ich die Schleife starten? Ich versuche: <% foreach (var Rolle in Rollen als IEnumerable) {%>, aber das funktioniert nicht –
robnardo