@ Html.Dropdownlist(x => x.id,new int)不起作用

时间:2013-07-22 18:35:36

标签: asp.net-mvc razor html-select

我如何才能使这项工作

@using (Html.BeginForm())
{
@Html.ValidationSummary()
    <p>MYep @Html.DropDownListFor(x => x.Id, new int {
                          new SelectListItem() {Text = "asdad", Value = "1"},
                          new SelectListItem() {Text = "dfgdgd", Value = "2"},
                          new SelectListItem() {Text = "werwrwt", Value = "3"}, "Choose")

<input type="submit" value="Ok" />

}

或者我应该在之前创建一个IEnumerable列表并将其提供给dropdownlistfor?

2 个答案:

答案 0 :(得分:2)

Matt的答案很好,但看起来你正在使用ViewModel,所以你应该把这个静态列表放到视图模型中并引用视图中的列表。

<强>视图模型

public sealed class MyViewModel
{
    public int Id { get; set; }
    public List<SelectListItem> IdList
    {
        get
        {
            return new List<SelectListItem> 
            { 
                new SelectListItem { Text = "asdad", Value = "1" }, 
                new SelectListItem { Text = "dfgdgd", Value = "2" }, 
                new SelectListItem { Text = "werwrwt", Value = "3" } 
            };
        }
    }
}

查看

@Html.DropDownListFor(x => x.Id, Model.IdList)

答案 1 :(得分:1)

您正在声明类型为int的对象,并使用SelectListItem列表填充它,这将无效。

我认为你想要这样的东西......如果x.Id是一个int并且所有下拉值都是字符串,你可能需要做一些修改,但我不确定。

@Html.DropDownListFor(x => x.Id, new List<SelectListItem> {                          
      new SelectListItem() {Text = "asdad", Value = "1"},
      new SelectListItem() {Text = "dfgdgd", Value = "2"},
      new SelectListItem() {Text = "werwrwt", Value = "3"}}, "Choose")