【发布时间】:2012-12-05 04:56:27
【问题描述】:
我正在尝试将 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();
}
【问题讨论】:
-
为什么你的视图是强类型的,而你却通过查询字符串传入了leagueKey?
-
我正在尝试将leagueKey 从一个强类型视图传递到另一个。上面列出的视图是原始视图,而有一个单独的视图强类型化到另一个模型,该模型是根据传递给它的 LeagueKey 填充的。
-
您可以按照@fde 的建议传递值,然后重定向到另一个控制器函数,该函数返回与不同模型链接的另一个视图。
标签: c# asp.net-mvc razor asp.net-mvc-4