【问题标题】:Selected DropDownList Value Not Sending to ASP.NET MVC Controller选定的 DropDownList 值未发送到 ASP.NET MVC 控制器
【发布时间】: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


【解决方案1】:

您的视图根据

向您发送 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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 2022-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多