2014-06-17 139 views
0

這是THIS的後續行動。DropDownListFor via via ViewBag

我控制器

using (ISession session = NHIbernateSession.OpenSession()) 
{ 
    var index = session.Query<Transport>().ToList(); 
    List<SelectListItem> items = new List<SelectListItem>(); 
    foreach (var car in index) 
    { 
     items.Add(new SelectListItem() 
      { Text = car.Modelis.model_name, Value = car.Modelis.Id.ToString() }); 
    } 
    ViewBag.Modeliai = new SelectList(items, "Id", "model_name"); 
    return View(items); 
} 

觀是這樣的:

@Html.DropDownListFor(model => model.Modelis.model_name, ViewBag.Modeliai) 

而且東西是錯誤的查看代碼。如何將ViewBag值放到下拉列表中?

+0

結果是什麼?異常或錯誤的輸出?或者是後回的問題? PS:你將SelectListItem生成「加倍」 - 你可以使用'for'循環並將'items'賦值給'ViewBag.Modeliai'或者簡單的'ViewBag.Modeliai = new SelectList(index,「Id」,「 model_name「);'(我喜歡第一個更好,因爲它是強類型的)。 – ChrFin

+0

我得到這個:CS1973:'System.Web.Mvc.HtmlHelper '沒有可用的方法名爲'DropDownListFor',但似乎有一個名稱的擴展方法。擴展方法不能動態分派。考慮轉換動態參數或調用擴展方法而不使用擴展方法語法。 – user1883184

回答

1

我仍然不知道你真正想要的選擇,但下面應該工作:

using (ISession session = NHIbernateSession.OpenSession()) 
{ 
    var index = session.Query<Transport>().ToList(); 
    List<SelectListItem> items = new List<SelectListItem>(); 
    foreach (var car in index) 
    { 
     items.Add(new SelectListItem() 
      { Text = car.Modelis.model_name, Value = car.Modelis.Id.ToString() }); 
    } 
    ViewBag.Modeliai = items; 
    return View(index); 
} 

foreach (var transport in Model) 
{ 
    @Html.DropDownListFor(model => transport.Modelis.model_name, ViewBag.Modeliai) 
} 
+0

我得到這個:CS1579:foreach語句無法對'web_nt.Models.Transport'類型的變量進行操作,因爲'web_nt.Models.Transport'沒有包含'GetEnumerator'的公共定義 – user1883184

+0

你是否返回了'List 'in 'View(...)'? – ChrFin

+0

我該怎麼做? – user1883184