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

C# 如何在MVC中获取DropDownList的选定值,c#,asp.net-mvc,C#,Asp.net Mvc,如何从MVC中的下拉列表中获取所选值?我想把它赋给一个变量 这是我的控制器操作: public ActionResult Drop() { 列表项=新列表(); 添加(新SelectListItem{Text=“Action”,Value=“0”}); 添加(新建SelectListItem{Text=“戏剧”,Value=“1”}); 添加(新SelectListItem{Text=“Comedy”,Value=“2”}); 添加(新SelectListItem{Text=“scientifi

如何从MVC中的下拉列表中获取所选值?我想把它赋给一个变量

这是我的控制器操作:

public ActionResult Drop()
{
列表项=新列表();
添加(新SelectListItem{Text=“Action”,Value=“0”});
添加(新建SelectListItem{Text=“戏剧”,Value=“1”});
添加(新SelectListItem{Text=“Comedy”,Value=“2”});
添加(新SelectListItem{Text=“scientific”,Value=“3”});
添加(新的SelectListItem{Text=“Horror”,Value=“4”});
添加(新SelectListItem{Text=“Art”,Value=“5”});
ViewData[“选项”]=项目;
}
我的看法是:

@Html.DropDownList(“选项”,视数据[“选项”]为选择列表,“--Select Item--”)
查看

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

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

也可以考虑,如果您在POST中不使用FaveCube,您可以轻松地使用以下内容,这是非常有用的,特别是如果您在主视图中使用部分视图。

[HttpPost]
public ActionResult Drop(SelectListItem item)
{

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

@使用(Html.BeginForm(“Index”,“Home”,FormMethod.Get))
{
选择过滤器
@Html.DropDownList(“SelectFilter”,@Model.ddlist)

}
控制器:

        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();
        }
公共操作结果索引(string SelectFilter)
{
var_model=newmodels.MyModel();
List LISTDL=新列表();
Add(新建SelectListItem{Text=“11”,Value=“11”});
Add(新建SelectListItem{Text=“22”,Value=“22”});
Add(新建SelectListItem{Text=“33”,Value=“33”});
ViewData[“ddlList”]=listDDL;
//我们将DDL项添加到模型中,您也可以将其添加到viewbag中
//或者您也可以在视图中声明DDL及其项
_model.ddlist=listdll;
返回视图();
}
型号:

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

}
公共类MyModel
{
公共列表ddlList=新列表();
}

在页面查看期间(即,每当所选值发生更改时作出反应),或在表单提交之后?您希望何时将所选值存储在变量中?在post方法中,还是在您上面提到的方法中?后者是不可能的(而且,我看不出任何人需要该值的原因。它将始终是第一个元素。)另外,html.dropdownlist和html.dropdownlistfor
html.SomeControlFor(model=>model.Property)
用于为
属性创建html控件。然后,您可以在回发操作中使用强类型参数,如
public ActionResult Drop(ModelType entity)
thanku,但现在对于我在帖子中使用的相同列表,如果我想使用@html.dropdownlistfor(),我需要做哪些更改?
        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>();

}