我正在尝试将DropDownList的选定值传递给新的控制器方法。但是,在控制器中,leagueKey
始终返回null。下拉列表中填充了值。
如果我将new { leagueKey = Model.SelectedLeagueKey}
更改为new {leagueKey = "test"}
,则控制器正确接收“测试”值。似乎DropDownList没有将所选值绑定到Model.SelectedLeagueKey
。
public Dictionary<string, string> Leagues { get; set; }
public string SelectedLeagueKey { get; set; }
<div class="edit-field">
@Html.DropDownListFor(model => model.SelectedLeagueKey, new SelectList(Model.Leagues, "Key", "Value", Model.SelectedLeagueKey),"Select League")
</div>
@Html.ActionLink("Select League", "AddTeam", "Team", new { leagueKey = Model.SelectedLeagueKey}, null)
public ActionResult AddTeam(LTEDContext context, string leagueKey)
{
//Do something with leagueKey here
return View();
}
答案 0 :(得分:3)
您的视图会根据
向您发送SelectedLeagueKey参数<div class="edit-field">
@Html.DropDownListFor(model => model.SelectedLeagueKey, new SelectList(Model.Leagues, "Key", "Value", Model.SelectedLeagueKey),"Select League")
</div>
尝试在视图中使用下一个代码:
@using (Html.BeginForm("AddTeam", "Team")) {
<div class="edit-field">
@Html.DropDownListFor(model => model.SelectedLeagueKey, new SelectList(Model.Leagues, "Key", "Value", Model.SelectedLeagueKey),"Select League")
</div>
<submit type="submit"/>
}
和控制器中的下一个:
public ActionResult AddTeam(LTEDContext context, string SelectedLeagueKey)
{
//Do something with leagueKey here
return View();
}