我正在使用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)
都在分离的页面上工作得很好,而且他们提交的是完全不同的数据。我已经考虑过混合它们并在控制器的方法中处理混合,但这是一种太令人厌恶的方式:/
感谢您的帮助!
答案 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
}