У меня есть следующее внутри моего веб-приложения asp.net mvc:
<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? благодаря
EDIT вот как я создаю 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; }
Просто убедитесь, что имя свойства в ViewBag отличается от имени DropDownList. @Html.DropDownList("pagedsizeoptions", new SelectList(ViewBag.PagedSizeOptionsSelectList, "Value", "Text", ViewBag.pagesize), new { @id= "pagedsizeoptions",@class="SmallDropDown3"})
Существуют некоторые соглашения относительно имени того, что в ViewBag и имени выпадающего списка, которые нарушают выделенное значение: ASP.NET MVC Html.DropDownList SelectedValue
А именно, что это работает: @Html.DropDownList("PagedSizeOptions")
если у вас есть список выбора в ViewBag с именем PagedSizeOptions
http://blinkingcaret.wordpress.com/2012/08/11/using-html-dropdownlistfor/
SelectList
с 4 параметрами, который принимает значение по умолчанию (и не предлагать применять Selected
к отдельному элементу). Более гибкий и простой в написании.
@Html.DropDownList("PagedSizeOptions", string.Empty)
будет работать, если у вас есть список выбора в viewbag с этим именем (PageSizeOptions)