【问题标题】:Correct MVC3 Model type of multiselect box?正确的 MVC3 模型类型的多选框?
【发布时间】:2012-01-31 22:00:08
【问题描述】:

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

谢谢

示例 一个频道可以有多个广告位,一个广告位可以有多个频道。

我目前的模型是:

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

这适合多选吗?

【问题讨论】:

  • MulitlineText 用于TextArea

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


【解决方案1】:

ASP.NET MVC 不为 DOM 元素使用“类型”。您将使用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 上,您可以看到选择了哪些项目。

【讨论】:

  • 我说的是模型类型。
【解决方案2】:

我认为您可以使用 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)),因为它已经可枚举。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 2012-07-03
      相关资源
      最近更新 更多