选择列表不会接受我SelectListItem对象 [英] SelectList wont accept my SelectListItem object

查看:81
本文介绍了选择列表不会接受我SelectListItem对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试着去填充我Html.Listbox与我的ASP.NET用户数据库的所有用户。

Im trying to populate my Html.Listbox with all the users of my ASP.NET user database.

我创建了一个视图模型,看起来像这样:

I have created a ViewModel that looks like this:

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的:

And a Actionresult that looks like this:

        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);
    }

在我看来,我试着填充列表如下:

On my view i try to populate the list like this:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<SkyLearn.Areas.Users.Models.UsersViewModel>" %>


<%= Html.ListBox("AvailableUsers", Model.AvailableUsers)%>

当我运行code我得到后续的错误:

When i run the code i get the follow error:

CS1579:foreach语句无法在类型SkyLearn.Areas.Users.Models.UsersViewModel'变量工作,因为SkyLearn.Areas.Users.Models.UsersViewModel'不包含'的GetEnumerator

CS1579: foreach statement cannot operate on variables of type 'SkyLearn.Areas.Users.Models.UsersViewModel' because 'SkyLearn.Areas.Users.Models.UsersViewModel' does not contain a public definition for 'GetEnumerator'

推荐答案

AvailableUsers没有初始化,你可以这样做在你的视图模型的构造,例如。

AvailableUsers is not initialized, you can do this in the constructor of your ViewModel, for example.

public class UsersViewModel
     {
     public UsersViewModel {
         AvailableUsers = new List<SelectListItem>();
     }
     MembershipUserCollection membershipuserscollection { get; set; }
     public List<MembershipUser> membershipuserslist { get; set; }
     public List<SelectListItem> AvailableUsers { get; private set; }
}

这篇关于选择列表不会接受我SelectListItem对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆