如何在ASP.Net MVC 3中使用@ Html.ListBoxFor方法?

时间:2012-12-07 20:41:01

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-2 razor

我看到“不包含...的定义”错误。

以下是View

中的代码
      @model Variant.SystemV.Web.Models._TaggingVM

      @Html.ListBoxFor(x=>x.Tags, Model.SelectedTags, new { @class = "chzn-select", data_placeholder = "Select Tag(s)...", style = "width: 500px" })

这是我的模特

public class _TaggingVM
{
    public IEnumerable<Tag> SelectedTags { get; set; }
    public IEnumerable<Tag> Tags { get; set; }
    public Article Article { get; set; }
}

1 个答案:

答案 0 :(得分:3)

这是因为Html.ListBoxFor()扩展名的参数类型为IEnumerable<SelectListItem>,并且您的viewmodel中的属性可能无法实现它。

您可以在视图中创建项目,如下所示:

@Html.ListBoxFor(x => x.SelectedTags, new SelectList(Model.Tags, "Id", "Text"))

它假设您的Tag类中有名为Id和Text的属性。您也应该在表达式中使用SelectedTags属性。它将确保您在发布表单时收回它们。