传递Html.BeginForm MVC多个参数
问题描述:
我有这样的事情:
public ActionResult Create(int clubid)
{
var club = db.Clubs.Single(c=>c.Id == clubid);
ViewBag.Club = club;
Competition comp = db.Competitions.Create();
return View(comp)
}
在我的.cshtml:
and in my .cshtml:
@Model Models.Competition
...
@Using(Html.BeginForm())
{
...
<input type="submit" value="Save" />
}
这正常工作与以下邮政动作:
This works fine with the following Post Action:
[HttpPost]
public ActionResult Create(Competition comp)
{
if (ModelState.IsValid){...}
return RedirectToAction(...);
}
不过,我想从 @ ViewBag.Club
对象传递一个额外的参数:
However, I want to pass an additional parameter from the @ViewBag.Club
object:
[HttpPoSt]
public ActionResult Create(int clubid, Competition comp){...}
我如何code这在 BeginForm
?
答
有两种选择这里。
- 在窗体中的隐藏字段,或
- 将它添加到路由参数值在开始的形式方法。
修改
@Html.Hidden("clubid", ViewBag.Club.id)
或
@using(Html.BeginForm("action", "controller",
new { clubid = @Viewbag.Club.id }, FormMethod.Post, null)