0

我正在尝试在.NET 中实现一个非常简单的多选,其中下拉值是动态创建的。

编码:

我创建了一个视图模型:

public class FiltersViewModel
{
    public int[] SelectedNatures { get; set; }
    public IEnumerable<SelectListItem> Natures { get; set; }

    public void FillNatures()
    {
        var repository = new LeadRepository();
        IEnumerable<string> natures = repository.GetNatures();

        var items = new List<SelectListItem> {};
        foreach (var nature in natures)
        {

            items.Add(new SelectListItem {Value = (string) nature, Text = (string) nature});
            Natures = items.ToArray();

        }
    }
}

我在控制器中创建了模型的一个实例:

public ActionResult Map()
    {
        var model = new FiltersViewModel {SelectedNatures = new int[] {}};

        model.FillNatures();

        ViewData.Model = model; 

        return View();

    }

然后我在视图中添加:

 <%: Html.ListBoxFor(x => x.SelectedValues, Model.Values) %>

错误:

编译器错误消息:CS1973:“System.Web.Mvc.HtmlHelper”没有名为“ListBoxFor”的适用方法

问题:

  • 有没有更简单的方法来实现多选?(我只是想创建它,然后我使用ajax来获取输入)
  • 我当前的代码有什么问题?
  • 如何为我的选择选择一个班级和 ID?
4

1 回答 1

0

似乎这个问题处理了同样的错误。我会尝试看看答案是否有效。

于 2013-06-19T17:52:52.220 回答