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'
最初のものから2番目の同一の 'SelectList'を作成するのは無意味な余分なオーバーヘッドです - ちょうど' ViewBag.DropDownValue = typelist; ''
建設的な批判のおかげで、私は見てみましょう:) 好奇心から、私はデータベースから項目を取る場合、私は何をすべきですか? type_devicesがテーブルcomputers_tabelとの関係を持っているとします。 これは、コンピュータIDに関連する正しいものを選択したいのですか? – FllnAngl
私があなたに与えたリンクは、それを行う方法を示しています:) –