2014-05-06 44 views
0

設置默認值我有以下我的asp.net MVC Web應用程序中: -無法爲我的Html.DropDownList

<div class="SmallDropDown2 b" > 

    @ViewBag.pagesize // to test the value Show 
    @Html.DropDownList("pagedsizeoptions", new SelectList(ViewBag.PagedSizeOptions, "Value", "Text", ViewBag.pagesize), new { @id= "pagedsizeoptions",@class="SmallDropDown3"}) per page. 
    <img src="~/Content/sortloading.gif" class="loadingimage" id="progressSort3" /></div> 

目前DROPDOWNLIST被忽略的默認值應等於ViewBag.pagesize 。即使我手動指定defualt值,它也將被忽略,因爲遵循!!!: -

@Html.DropDownList("pagedsizeoptions", new SelectList(ViewBag.PagedSizeOptions, "Value", "Text", 100), new { @id= "pagedsizeoptions",@class="SmallDropDown3"}) 

任何人都可以諮詢,爲什麼我不能指定Html.DropdownList的默認值? 感謝

編輯這裏是我如何建立的SelectList: -

public PageOptions() 
     { 
      int size = Int32.Parse(System.Web.Configuration.WebConfigurationManager.AppSettings["TechPageSize"]); 
      FilterOptions = new SelectList(
      new List<SelectListItem> { 
      new SelectListItem { Text=size.ToString(), Value = size.ToString()}, 
      new SelectListItem { Text="50", Value = "50"}, 
      new SelectListItem { Text="100", Value = "100"}, 
      new SelectListItem { Text="200", Value = "200"}, 
      new SelectListItem { Text="500", Value = "500"} 
     }, "Value", "Text"); 

     } 

     public SelectList FilterOptions { get; set; } 
+0

@Jorge和想法是什麼原因造成的? –

+1

下拉列表的值是以字符串還是int的形式傳遞的? – Jorge

+0

我已經更新了我的原始問題,代碼顯示了我如何構建SelectList ..謝謝 –

回答

0

只要確保在ViewBag屬性的名稱是不同比DropDownList的名字。 @Html.DropDownList("pagedsizeoptions", new SelectList(ViewBag.PagedSizeOptionsSelectList, "Value", "Text", ViewBag.pagesize), new { @id= "pagedsizeoptions",@class="SmallDropDown3"})

有關於什麼是在ViewBag名稱和打破seleced值的下拉列表的名稱的一些約定:ASP.NET MVC Html.DropDownList SelectedValue

即只是這個工程: @Html.DropDownList("PagedSizeOptions")如果你在選擇列表ViewBag命名PagedSizeOptions

http://blinkingcaret.wordpress.com/2012/08/11/using-html-dropdownlistfor/

+0

在這種情況下,您應該使用4參數'SelectList'構造函數,它具有默認值(並且不建議將'Selected'應用於單個項目)。更靈活和更簡單的寫作。 –

+0

@TrueBlueAussie你是對的。另外,當下拉列表的名稱與viewbag中的選擇列表相同時,所選項目不會被選中。我實際上不知道爲什麼,我相信這與'@ Html.DropDownList(「PagedSizeOptions」,string.Empty)'這個事實有關,因爲如果在viewbag中有一個具有該名稱的選擇列表(PageSizeOptions) – Rui