我正在尝试通过参数将数据加载到我的页面中,但是没有传递参数。以下是我的视图中传递值的部分:
@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();
答案 0 :(得分:0)
尝试为下拉列表显式设置值字段和文本字段:
@Html.DropDownList("TM",new SelectList(ViewBag.Teams,"Value","Text"))
否则,您必须在下拉列表中传递包含所选项目值的变量。
您需要表单中的隐藏字段,并且您必须通过JavaScript或
将所选项的值分配给该隐藏字段将Model中的属性标记为值的持有者:
@Html.DropDownListFor(m => m.TM,
new SelectList(ViewBag.Teams))