【发布时间】:2013-06-16 07:00:38
【问题描述】:
我正在尝试在 .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?
【问题讨论】:
-
您使用的是什么版本的 .NET?
-
也许是一个愚蠢的问题,但我对使用 Web 表单并不太熟悉。
<%:语法有什么作用?您是否尝试过使用<%或<%=之类的东西? -
@ChrisPratt 见ASP.NET “special” tags
-
我会说检查一下你是否有
System.Web.Mvc.dll的参考 -
@Romoku:谢谢。
标签: c# .net asp.net-mvc compiler-errors html.listboxfor