如何在MVC中获取DropDownList的选定值

时间:2012-08-21 07:30:20

标签: c# asp.net-mvc

如何从MVC中的DropDown中获取所选值?我想将它分配给变量。

这是我的控制器动作:

public ActionResult Drop()
{
    List<SelectListItem> items = new List<SelectListItem>();
    items.Add(new SelectListItem { Text = "Action", Value = "0" });
    items.Add(new SelectListItem { Text = "Drama", Value = "1" });
    items.Add(new SelectListItem { Text = "Comedy", Value = "2" });
    items.Add(new SelectListItem { Text = "Science Fiction", Value = "3" });
    items.Add(new SelectListItem { Text = "Horror", Value = "4" });
    items.Add(new SelectListItem { Text = "Art", Value = "5"  });
    ViewData["Options"] = items;
}

这是我的观点:

@Html.DropDownList("Options", ViewData["Options"] as SelectList, "--Select Item--")

3 个答案:

答案 0 :(得分:4)

查看

@using (Html.BeginForm())
{ 
    <h2>Drop</h2>
    @Html.DropDownList("Options", ViewData["Options"] as SelectList, "--Select Item--")

    <input type="submit" name="submit" value="Submit" />
}

<强>控制器 添加新动作

[HttpPost]
public ActionResult Drop(FormCollection form)
{
    var optionsValue = form["Options"];
    //TODO:
    return RedirectToAction("Drop");
}

答案 1 :(得分:3)

另外,请注意,如果您未在帖子中使用FormCollection,则可以轻松使用以下内容,这非常有用,尤其是在主要视图中使用部分视图时。

[HttpPost]
public ActionResult Drop(SelectListItem item)
{

    var selectedValue = Request.Form["ID_OF_THE_DROPDOWNLIST"];
    //TODO......
    return RedirectToAction("Drop");
}

答案 2 :(得分:0)

查看:

@using (Html.BeginForm("Index", "Home", FormMethod.Get))
{
    <fieldset>
        Select filter
        @Html.DropDownList("SelectFilter", @Model.ddlList)
        <p>
            <input type="submit" value="Submit" />
        </p>
    </fieldset>
}

控制器:

        public ActionResult Index(string SelectFilter)
        {
            var _model = new Models.MyModel();

            List<SelectListItem> listDDL = new List<SelectListItem>();
            listDDL.Add(new SelectListItem { Text = "11", Value = "11" });
            listDDL.Add(new SelectListItem { Text = "22", Value = "22" });
            listDDL.Add(new SelectListItem { Text = "33", Value = "33" });
            ViewData["ddlList"] = listDDL;

//We add our DDL items to our model, you can add it to viewbag also
//or you can declare DDL in view with its items too
            _model.ddlList = listDDL;
            return View();
        }

型号:

Public class MyModel
{
     public List<SelectListItem> ddlList = new List<SelectListItem>();

}