Не могу установить значение по умолчанию для моего Html.DropDownList

0

У меня есть следующее внутри моего веб-приложения 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; }
  • 0
    @ Джордж и идея, что вызывает это?
  • 1
    Значения выпадающего списка передаются в виде строки или int?
Показать ещё 4 комментария
Теги:
razor
asp.net-mvc
html-helper

1 ответ

0

Просто убедитесь, что имя свойства в 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/

  • 0
    В этом случае вам следует использовать конструктор SelectList с 4 параметрами, который принимает значение по умолчанию (и не предлагать применять Selected к отдельному элементу). Более гибкий и простой в написании.
  • 0
    @TrueBlueAussie Вы правы. Кроме того, когда имя раскрывающегося списка совпадает с именем списка выбора в панели просмотра, выбранный элемент не выделяется. Я на самом деле не знаю, почему, я думаю, это связано с тем, что @Html.DropDownList("PagedSizeOptions", string.Empty) будет работать, если у вас есть список выбора в viewbag с этим именем (PageSizeOptions)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню