Ich versuche, meine Html.Listbox mit allen Benutzern meiner ASP.NET-Benutzerdatenbank aufzufüllen.SelectList akzeptiert mein SelectListItem-Objekt nicht
Ich habe ein Ansichtsmodell geschaffen, das wie folgt aussieht:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Web.Mvc;
using System.Web.Security;
namespace SkyLearn.Areas.Users.Models
{
public class UsersViewModel
{
MembershipUserCollection membershipuserscollection { get; set; }
public List<MembershipUser> membershipuserslist { get; set; }
public List<SelectListItem> AvailableUsers { get; set; }
public UsersViewModel()
{
availableUsers = new List<SelectListItem>();
}
}
}
Und eine Action, die das wie folgt aussieht:
public ActionResult Index()
{
var users = Membership.GetAllUsers().Cast<MembershipUser>();
UsersViewModel model = new UsersViewModel();
foreach (MembershipUser user in users)
{
SelectListItem selectuser = new SelectListItem();
selectuser.Text = user.UserName;
selectuser.Value = user.UserName;
model.AvailableUsers.Add(selectuser);
}
return View(model);
}
Auf meiner Sicht Ich versuche, die Liste wie folgt zu füllen:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<SkyLearn.Areas.Users.Models.UsersViewModel>" %>
<%= Html.ListBox("AvailableUsers", Model.AvailableUsers)%>
Wenn ich den Code ausführen, bekomme ich den folgenden Fehler:
CS1579: foreach-Anweisung auf Variablen des Typs nicht arbeiten kann ‚SkyLearn.Areas.Users.Models.UsersViewModel‘ weil ‚SkyLearn.Areas.Users.Models.UsersViewModel‘ keine öffentliche Definition für ‚GetEnumerator‘ enthält
Es war richtig, dass ich vergessen habe, einen Konstruktor zu machen. leider hat das gerade ein neues problem für mich ergeben xD ich fing an, meine haare auf diesem zu reißen. CS1061: 'System.Collections.Generic.IEnumerable' enthält keine Definition für 'availableUsers' und keine Erweiterungsmethode 'availableUsers', die ein erstes Argument vom Typ 'System.Collections' akzeptiert .Generic.IEnumerable 'könnte gefunden werden (fehlt eine Verwendungs-Direktive oder eine Assembly-Referenz?) nicht sicher, ob dies für Sie sinnvoll ist? –
AronChan
Hmmm, wo passiert das? Woher kommt das IEnmerable, ist das das Modell Ihrer Ansicht? –
Irgendwie scheint es, dass es mein ViewModel-Objekt jetzt als Enumerable ansieht. Ich kann keine der Listen darauf aus meiner Sicht zugreifen: S – AronChan