2015-06-15 67 views
1

我正在用Razor開發MVC 4.5中的網站,並且我需要將2 Html.BeginForm放在同一頁上。正如我注意到並通過互聯網閱讀的,同一頁上的兩個表單不能很好地工作。一個剃刀視圖上的兩個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中,這是非常容易的,因爲您使用表單標籤。 :-)

可悲的是,他並不確切應該做什麼,這是我唯一的線索。

因此,如果任何人有我怎麼能做到這一點的想法...

一些更精度:

@using (Html.BeginForm)是精細分離上工作的網頁,他們要提交完全不同的DATAS的兩個。我已經想過在混音中處理它們,並且在控制器的方法中處理混音,但是這太過於誇張:/

感謝您的幫助!

+1

多個'form'標籤應該在MVC中正常工作,除非它們是嵌套的。請告訴我們您使用某些代碼時遇到的問題,特別是HTML代碼。 – ramiramilu

+0

您還需要小心如何提交每個表單,即哪個提交按鈕控制每個表單。你能解釋一下它不起作用嗎? –

+0

簡而言之,我的第一個表單工作得很好。第二個在提交時觸發第一個。第一個:@using(Html.BeginForm(「InstructionSearch」,「Search」,FormMethod.Post,new {}))第二個:@using(Html.BeginForm(「ECN」,「Search」,這兩種方法都存在於我的'SearchController'中 –

回答

1

你的形式都應該被罰款,但你需要指定他們應該張貼到什麼樣的行動,而不是僅僅把它作爲默認的,例如:

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

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

你可以在頁面上的幾種形式。但他們不能是一個在另一個。

@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 
}