2017-11-10 242 views
0

我正在渲染一個下拉列表。ASP.NET MVC SelectList Select Option的值

ViewBag.Categories = new SelectList(db.HelpCategories, "ID", "Name"); 

在我看來,我這樣稱呼它:

Categories: @Html.DropDownList("Categories", (SelectList)ViewBag.Categories, "All") 

對於我得到這樣選擇值。

<select id="Categories" name="Categories"> 
    <option value="">All</option> 
    <option value="1">Dėl Krepšelių</option> 
</select> 

我真的需要將「全部」的值設置爲0。無法找到一種方法來做到這一點。找到一個教程,它使用SelectListItem完成,但不符合我的代碼。 任何幫助真的很感激,謝謝。

+0

爲什麼你想將它設置爲'0'?如果你確實需要它,那麼你必須生成一個包含Value =「0」和Text =「All」的IEnumerable '(並且在你的DropDownList()方法中刪除第三個參數) –

回答

1

您可以始終在您的操作方法中構建SelectListItem列表,您可以明確地添加具有特定valuetext的項目,如果您絕對需要的話。

var categoryList = new List<SelectListItem> 
{ 
    new SelectListItem { Value="0", Text = "All"} 
}; 

categoryList.AddRange(db.HelpCategories 
         .Select(a => new SelectListItem { 
                  Value = a.Id.ToString(), 
                  Text = a.Name})); 
ViewBag.CategoryList = categoryList; 

return View(); 

現在,在您看來,您將使用ViewBag.CategoryList建立SELECT元素

@Html.DropDownList("Categories", ViewBag.CategoryList as IEnumerable<SelectListItem>) 
+0

謝謝,這個作品完美。雖然這樣簡單的事情有點長。但它回答了我的問題。 – HighSepton