ASP.NET ユーザー データベースのすべてのユーザーを Html.Listbox に入力しようとしています。
次のような ViewModel を作成しました。
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>();
}
}
}
そして、次のような Actionresult :
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);
}
私の見解では、次のようにリストに入力しようとしています:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<SkyLearn.Areas.Users.Models.UsersViewModel>" %>
<%= Html.ListBox("AvailableUsers", Model.AvailableUsers)%>
コードを実行すると、次のエラーが表示されます。
CS1579: 'SkyLearn.Areas.Users.Models.UsersViewModel' には 'GetEnumerator' のパブリック定義が含まれていないため、foreach ステートメントはタイプ 'SkyLearn.Areas.Users.Models.UsersViewModel' の変数に対して操作できません