Html.Dropdown的Html属性

时间:2010-02-08 13:54:26

标签: asp.net-mvc attributes html-helper

我正在使用下拉列表,如下所示。

<%=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 :(得分:0)

您必须再次制作选择列表项的列表,并在每个帖子中指出哪些项是所选项(SelectListItem的Selected属性)。

答案 1 :(得分:0)

当您执行帖子时,您将再次设置ViewData [“可用”],您可以在此处设置选择项目。因此,当您在html中创建下拉列表时,已选择所选项目。所以你的代码看起来像:

ViewData["Available"] = new SelectList( items, "dataValueField", "dataTextField", "selectedValue" );

答案 2 :(得分:0)

这对我有用:

&lt;%= Html.DropDownList(“Ibus”,ViewData [“Ibus”]为SelectList,新{ @class =“dASDropDown”})%&gt;

答案 3 :(得分:0)

您必须使用属性模型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);
}

编辑:另请参阅this