我想要一个下拉列表,当我点击提交按钮时,它会回发所选的值。
我不知道我是否做得对,但到目前为止我已经四处寻找并提出了这个问题。
我只是想知道我是否做得对,以及一旦回发后它会存储价值。
@using (Html.BeginForm())
{
@Html.DisplayName("Name:")<br />
@Html.TextBox("NAME")<br />
@Html.DisplayName("Password:")<br />
@Html.TextBox("PASS")<br />
@Html.DisplayName("Team Name:")<br />
@Html.DropDownListFor(x => x.Teams, new SelectList(Model.Teams, "value", "TeamNAME"), new {onchange = "submit()"})
<input type="submit" value="ADD" />
}
想要获得这里的价值
[HttpPost]
public ActionResult Index()
{
//GET VALUE OF THE SELECTED TEAM HERE
return RedirectToAction("Index");
}
答案 0 :(得分:2)
它看起来非常接近 - 唯一的一点是,你应该在使用模型绑定的HTML帮助器方法时保持一致。也就是说,使用TextBoxFor
和DropDownListFor
,或TextBox
和DropDownList
,但不要混用和匹配。
如果使用模型绑定的,那么您应该能够简单地将模型类型作为参数添加到回发操作中:
public ActionResult Index(MyModel postback)
对于未绑定的,您可以使用其名称单独添加参数:
public ActionResult Index(string NAME, string PASS, string TEAM)
(假设你改为@Html.DropDownList("TEAM", new SelectList(Model.Teams, "value", "TeamNAME"), new {onchange = "submit()"})
)
答案 1 :(得分:1)
详细信息:以下假设您使用的是名为Team的模型,并且您在视图中使用该模型。 (代码未经测试)
查看强>
@Html.DropDownListFor("Teams", String.Empty)
<强>控制器强>
[HttpGet]
public ActionResult Index()
{
ViewBag.Teams = new SelectList(db.Team, "TeamId", "TeamNAME");
return View();
}
[HttpPost]
public ActionResult Index(Team team)
{
// Here is your selected Team id
//team.TeamId
return View();
}
有关使用DropDownList
的更多信息,请查看本教程