我正在尝试在.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?