传递Html.BeginForm MVC多个参数 [英] Pass multiple parameters in Html.BeginForm MVC

查看:185
本文介绍了传递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

推荐答案

有两种选择这里。


  1. 在窗体中的隐藏字段,或

  2. 将它添加到路由参数值在开始的形式方法。

修改

@Html.Hidden("clubid", ViewBag.Club.id)

 @using(Html.BeginForm("action", "controller",
                       new { clubid = @Viewbag.Club.id }, FormMethod.Post, null)

这篇关于传递Html.BeginForm MVC多个参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆