2013-07-22 39 views
0

我怎樣才能使這項工作@ Html.Dropdownlist(X => x.id,新INT)不工作

@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?

回答

1

您正在聲明類型爲int的對象,並將其填充爲列表SelectListItem s,這將不起作用。

我想你想要的東西是這樣的......如果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") 
+0

我只需要一個值1,2或3回傳給控制器,所以如何做它並不真正的問題,但什麼我讀的應該是IEnumerable我認爲 –

+0

列表實現IEnumerable,所以你可以使用它。你不能實例化一個接口,所以新的IEnumerable ()只是普通的將不起作用。 – Matt

2

馬特的答案是好的,但它看起來像你正在使用一個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) 
相關問題