参数未在mvc 4中传递

时间:2014-05-29 01:23:51

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

我正在尝试通过参数将数据加载到我的页面中,但是没有传递参数。以下是我的视图中传递值的部分:

@using (Html.BeginForm()){
    <text>Team </text>@Html.DropDownList("Tm", new SelectList(ViewBag.Teams))
    <input type="submit" value="Search" />
}`

“Tm”应该是选择值并单击提交按钮后传递的值。它应该传递给控制器​​中的以下函数

public ActionResult Index(int? Tm)
    {
        if (Tm == 0)
        {
            Tm = 1;
        }
        string connectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\Webs\MvcFFL\MvcFFL\App_Data\aspnet-MvcFFL-20140517174741.mdf;Integrated Security=True";
}

不幸的是,Tm的值为null。如果我删除了?从控制器中的int然后它抛出一个错误。那么我该怎样做才能确保传递该值,以便我的控制器可以正确地将数据发送回页面?

**更新** 我发布了返回页面的内容:

var mdl = from r in db.Teamplayers
                    where r.teamid == f
                    select r;

        return View(mdl);
在这种情况下,

f是整数

更新#2 这是我的ViewBag.Teams,选择列表从以下位置获取信息:

ViewBag.Teams = (from r in db.FTeams
                         where r.UserID == curID
                         select r.FTeam).Distinct();

1 个答案:

答案 0 :(得分:0)

尝试为下拉列表显式设置值字段和文本字段:

 @Html.DropDownList("TM",new SelectList(ViewBag.Teams,"Value","Text"))

否则,您必须在下拉列表中传递包含所选项目值的变量。

您需要表单中的隐藏字段,并且您必须通过JavaScript或

将所选项的值分配给该隐藏字段

将Model中的属性标记为值的持有者:

  @Html.DropDownListFor(m => m.TM, 
            new SelectList(ViewBag.Teams))