正确的MVC3模型类型的多选框?

时间:2012-01-31 22:00:09

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

是mvc3 DataType.MultilineText中多选框的正确数据类型?这些最终源于多对多类型的关系。

由于

实施例 频道可以有多个广告位,广告位可以有多个频道。

我目前的模特是:

[Display(Name = "Ad Slots")]
[DataType(DataType.MultilineText)]
public string[] AdSlots { get; set; }

多选是否正确?

3 个答案:

答案 0 :(得分:0)

ASP.NET MVC不为DOM元素使用“类型”,persay。您可以使用HtmlHelper.ListBox()扩展方法。

此扩展方法返回多选列表框。

@Html.ListBox(
    "YourFormFieldName", 
    new SelectList(new[] { "You can select this one", "and this one" })
)

编辑:对于模型,您可以使用:

public class YourViewModel
{
    public MultiSelectList YourItems { get; set; }
}

然后在POST上你可以看到选择了哪些项目。

答案 1 :(得分:0)

我认为您可以使用System.Web.Mvc.MultiSelectList之类的内容来获取IEnuermable个集合。

查看此文章了解更多信息: http://ittecture.wordpress.com/2009/04/30/tip-of-the-day-198-asp-net-mvc-listbox-controls/

对于你的编辑,我的答案可能不那么有用,因为你很可能不希望你的模型引用MVC,但是你可以@Html.ListBox("AdSlots", new MultiSelectList(model.AdSlots)),因为它已经可以枚举。

答案 2 :(得分:0)

此多行类型表示textarea而不是multiselect,它具有以多选作为属性的标记。