我正在使用下拉列表,如下所示。
<%=Html.DropDownList("ddl", ViewData["Available"] as SelectList,
new { CssClass = "input-config", onchange = "this.form.submit();" })%>
在选择更改时,我正在调用后期操作。在帖子之后显示相同的页面,其中存在该下拉列表。我想知道下拉列表的HTML属性,这将让我保留列表选择更改。但截至目前,该列表显示了该帖后的第一个元素。 例如dropdoen包含1,2,3等元素。默认情况下,选择1。如果我选择2,则调用帖子并再次显示相同的页面,但我的选择2将再次选择1。 如何保留选择?
谢谢, 卡皮尔
答案 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