一个Razor View上有两个Html.BeginForm()

时间:2015-06-15 13:02:41

标签: html asp.net asp.net-mvc forms razor

我正在使用Razor在MVC 4.5中开发一个网站,我需要将2 Html.BeginForm放在同一页面上。正如我已经注意到它并通过互联网阅读它,同一页面上的两个表单不能正常工作。

我尝试使用runat='server',但这也不起作用,但我看到了这篇文章:http://www.quora.com/How-do-I-use-2-forms-in-a-single-ASP-NET-page-running-on-a-server一位老兄在说:

  

在MVC中,由于您使用Form标签,因此非常容易。 : - )

可悲的是,他并不准确应该做些什么,这是我仍然有的唯一线索。

所以,如果有人知道如何做到这一点......

更精确一些:

我的两个@using (Html.BeginForm)都在分离的页面上工作得很好,而且他们提交的是完全不同的数据。我已经考虑过混合它们并在控制器的方法中处理混合,但这是一种太令人厌恶的方式:/

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

您可以在页面上显示多个表单。但它们不能相互存在。

@using (Html.BeginForm("your action name", "your controller ", FormMethod.Post))
{
// code for the first form here
}


@using (Html.BeginForm("your other action name", "your controller ", FormMethod.Post))
{
// code for the second form here
}

答案 1 :(得分:1)

您的表单应该都很好,但您需要指定他们应该发布的操作,而不是将其保留为默认值,例如:

@Html.BeginForm("Action1", "Controller1") {
   ... Fields to post to Action1.
}

@Html.BeginForm("ActionX", "ControllerX") {
   ... Fields to post to ActionX
}