Html-атрибут для Html.Dropdown - PullRequest
       17

Html-атрибут для Html.Dropdown

3 голосов
/ 08 февраля 2010

Я использую раскрывающийся список следующим образом.

<%=Html.DropDownList("ddl", ViewData["Available"] as SelectList, 
   new { CssClass = "input-config", onchange = "this.form.submit();" })%>

При его изменении я вызываю пост-действие. После публикации отображается та же страница, на которой присутствует этот выпадающий список. Я хочу знать об атрибуте HTML для раскрывающегося списка, который позволит мне сохранить изменение выбора списка. Но на данный момент список показывает свой первый элемент после поста. например Dropdoen содержит элементы, такие как 1,2,3 и т. По умолчанию выбран 1. Если я выберу 2, пост будет вызван, и та же страница снова будет показана, но мой выбор 2 уйдет, а 1 снова будет выбран. Как сохранить выбор?

Спасибо, Капил

Ответы [ 4 ]

0 голосов
/ 19 декабря 2012

Вы должны взять модель свойства ddl или получить его в качестве параметра в действии, например:

public ActionResult Action(Model model, string ddl) 

Затем, чтобы создать ViewData [" Available "], вы должны передать его как выбранное значение

public ActionResult Action(Model model, string ddl) 
{
   ViewData["Available"] = List<SelectListItem>
        {
            new SelectListItem { Text = "1", Value = "1", Selected = (ddl == "1") },
            new SelectListItem { Text = "2", Value = "2", Selected = (ddl == "2") },
            new SelectListItem { Text = "3", Value = "3", Selected = (ddl == "3") }
        };

   return View(model);
}

OR

public ActionResult Action(Model model, string ddl) 
{
   var list = List<SelectListItem>
        {
            new SelectListItem { Text = "1", Value = "1" },
            new SelectListItem { Text = "2", Value = "2" },
            new SelectListItem { Text = "3", Value = "3" }
        };

   ViewData["ddl"] = new SelectList(list, "value", "text", ddl);
   return View(model);
}

РЕДАКТИРОВАТЬ : См. Также это

0 голосов
/ 08 февраля 2010

Когда вы выполните публикацию, вы снова настроите ViewData ["Available"], здесь вы можете установить элемент select Поэтому, когда вы создаете выпадающий список в HTML, выбранный элемент уже выбран. Таким образом, ваш код может выглядеть примерно так:

ViewData["Available"] = new SelectList( items, "dataValueField", "dataTextField", "selectedValue" );
0 голосов
/ 19 апреля 2011

Это сработало для меня:

<% = Html.DropDownList ("Ibus", ViewData ["Ibus"] как SelectList, новый {<strong> @ class = "dASDropDown"})%>

0 голосов
/ 08 февраля 2010

Необходимо снова составить список элементов списка выбора и указать, какой из элементов выбран в каждом сообщении (свойство Selected объекта SelectListItem).

...