提交后设置DropdownList SelectedItem

时间:2010-12-09 19:24:50

标签: asp.net asp.net-mvc

首次加载表单时,我将下拉列表设置为“ - 选择项目 - ”。提交表单后,我没有看到选定的项目被选中。它再次设置为'--Selected Item--'。可能是什么问题?

<%= Html.DropDownList("lstDetails", new SelectList((IEnumerable)ViewData["DetailList"], "ID", "Details"), "--Select Item--")%>

谢谢..

2 个答案:

答案 0 :(得分:0)

我假设您希望将所选项目保存在某处。

<%: Html.DropDownFor(selectedId, new SelectList((IEnumerable)ViewData["DetailList"], "ID", "Details", (IEnumerable)ViewData["DetailList"].FirstOrDefulft(x => x.Id == selectedId), "--SelectItem--") %>

您需要存储选择项目的信息。我在这里使用了一个名为

的int
int selectedId

我假设你的detailList项目中有一个Id字段。

答案 1 :(得分:0)

最简单的方法是将SelectList放入模型中。 (只需确保在模型的构造函数中创建SelectList)。

查看:

<%= Html.DropDownList("lstDetails", Model.DetailList)%>

控制器:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MyController(MyModel model)
{
     return View(model);
}

型号:

class MyModel
{
   public SelectList DetailList;

   public MyModel()
   {
      DetailList = new SelectList(....
   }
}

因此,在您回发后,如果您使用相同的模型返回视图,那么表单将与您提交表单前的内容相同。