2016-12-02 8 views
0

Stack Overflowで自分のアカウントを作成しました。これは初めての質問です。DropDownListに問題があります。DropDownListFor:いいえキーがある 'IEnumerable <SelectListItem>'のViewDataアイテム

public ActionResult typeDevices() 
    { 
     List<SelectListItem> typelist = new List<SelectListItem>(); 
     DropDownModel type = new DropDownModel(); 


     type.TypeDevicesId = 1; 
     type.TypeDevicesValue = "typeDevice1"; 

     typelist.Add(new SelectListItem() { Value = type.TypeDevicesValue, Text = type.TypeDevicesId.ToString() }); 

     type.TypeDevicesId = 2; 
     type.TypeDevicesValue = "typeDevice2"; 

     typelist.Add(new SelectListItem() { Value = type.TypeDevicesValue, Text = type.TypeDevicesId.ToString() }); 

     type.TypeDevicesId = 3; 
     type.TypeDevicesValue = "typeDevice3"; 

     typelist.Add(new SelectListItem() { Value = type.TypeDevicesValue, Text = type.TypeDevicesId.ToString() }); 

     SelectList listvalues = new SelectList(typelist, "Text", "Value"); 
     ViewBag.DropDownValues = listvalues; 
     ViewData["DropDownData"] = new SelectList(listvalues, "Text", "Value"); 
     return View(); 
    } 

モデル:

私はASP-NETおよびMVC 5に比較的新しいですので、私は私が

コントローラーをやったので、どんな恐ろしいことを言い訳してください、私が間違っているのかわかりません

public class DropDownModel 
{ 
    public int TypeDevicesId { get; set; } 
    public string TypeDevicesValue { get; set; } 
} 

インデックス:

<p> 
    <label class="field" for="Type">Type:</label> 
    @Html.DropDownList("DropDownData", (SelectList)ViewBag.DropDownValues)) 
</p> 

このコードは、私は、次のされた映像から来ました。私は取得していますLink to video

エラーはあなたにIEnumerable<SelectListItem>タイプのデータを提供する必要があるだけで

ViewBag.DropDownValues = typelist; 

にコード

ViewBag.DropDownValues = listvalues; 

のこの行を変更

There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'DropDownData'

+0

最初のものから2番目の同一の 'SelectList'を作成するのは無意味な余分なオーバーヘッドです - ちょうど' ViewBag.DropDownValue = typelist; ''