2013-07-26 32 views
0

給定一個MVC視圖像這樣:在ASP.NET MVC視圖中執行多個表單衝突嗎?

<form id="Form1"> 
    <label for="LastName"> 
     @Html.DisplayNameFor(m => m.LastName) 
    </label> 
    @Html.EditorFor(m => m.LastName) 
    <button id="SubmitOne" onclick="SubmitOne_Click()">SubmitOne</button> 
</form> 

<form id="Form2"> 
    <label for="LastName2"> 
     @Html.DisplayNameFor(m => m.LastName2) 
    </label> 
    @Html.EditorFor(m => m.LastName2) 
    <button id="SubmitTwo" onclick="SubmitTwo_Click()">SubmitTwo</button> 
</form> 

The javascript functions are irrelevant, this problem also occurs when they are empty or just have an alert. 

當點擊SubmitOne,一切都按預期工作。但是,單擊SubmitTwo時,整個頁面會刷新,這不應該發生。如果我將Form1註釋掉,Form2可以正常工作。

這是怎麼回事?

更新:這裏的JavaScript:

function SubmitOne_Click() { 
    alert("One"); 
} 

function SubmitTwo_Click() { 
    alert("Two"); 
} 

作爲一個故障排除步驟,我扯下了視圖下到什麼,但形式和腳本到什麼爲好。我在_Layout中引用了Bootstrap,jqGrid和jQuery,但目前在此視圖中沒有使用它們。

+0

除了form1沒有。形式是否是這樣做的錯誤方式?我真的只需要與田野的本地互動。謝謝。 – kettch

+0

看來我上面回覆的評論已被刪除。 – kettch

回答

1

事實證明,我需要一個類型的屬性添加到我的按鈕:

<button type="button" id="SubmitTwo" onclick="SubmitTwo_Click()">SubmitTwo</button> 

這阻止了按鈕完成提交表單。

另請參閱:How to prevent buttons from submitting forms

+0

對不起,我沒有理解。解決你的問題的好工作。 –

0

在頁面上有多個表單不會導致任何問題,除非它們是嵌套的,這不是你的情況。我敢打賭,這個問題的確在JavaScript中。

請告訴我們相關的JavaScript代碼。

0

你沒有嵌套窗體,你沒有相同的ID,你沒有任何相同的東西。 (所以這是好的)

請發表您的JavaScript代碼也,是不錯的,在你的剃鬚刀表單代碼偷看你的控制器方法一起