选定的DropDownList值不发送到ASP.NET MVC控制器

时间:2012-12-18 02:07:32

标签: c# asp.net-mvc razor asp.net-mvc-4

我正在尝试将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();
    }

1 个答案:

答案 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();
}
相关问题