2010-06-23 41 views
5

我正在使用ASP.NET MVC創建一個頁面,張貼到貝寶沙箱。發佈到Paypal網站的表單嵌套在父表單中。我使用的是Internet Explorer 7,出於某種原因,嵌套表單發佈到我的本地機器而不是貝寶網站。如果我在第一個後面添加同一個嵌套表單的副本,第一個發佈到localhost,第二個發佈到預期的位置。Internet Explorer嵌套表格帖子

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title> 
    </title> 
</head> 
<body> 
    <form name="aspnetForm" method="post" action="" id="aspnetForm">   
     <!--First form posts locally--> 
     <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 
      <input type="submit" value="Pay"/> 
     </form>  

     <!--Second identical form posts to the expected destination--> 
     <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">  
      <input type="submit" value="Pay"/> 
     </form> 
    </form> 

+6

您不允許在HTML中嵌套表單。嘗試這樣做只會導致痛苦,因爲瀏覽器試圖從錯誤中恢復。所以不要嘗試。 – Quentin 2010-06-23 13:42:57

回答

11

嵌套形式不是vaild,因此,他們的行爲是不確定的。你不能將它們嵌套在一起。儘管您可以在頁面上顯示多個不帶參考的表單,但一次只能提交一個表單(儘管只會提交相應的提交按鈕之一)。

+4

+1 - W3在表單上的註釋:http://www.w3.org/MarkUp/html3/forms.html – Fenton 2010-06-23 13:46:34

0

處理服務器端的按鈕點擊事件並從那裏發佈到網站。嵌套表單是無效的xhtml。

3

看起來像我使用ASP.NET主頁面模板,而不是ASP.NET MVC之一。 ASP.NET模板包含一個表單標籤,它是創建這個嵌套表單頁面的。使用ASP.NET MVC模板通過完全刪除嵌套表單解決了我的問題。

+1

這是幾個帖子在stackoverflow上解決這個問題最有用的評論! – KristianB 2011-09-18 11:36:02