2010-06-23 46 views
5

Tôi đang sử dụng ASP.NET MVC để tạo một trang đăng lên hộp cát Paypal. Biểu mẫu của tôi đăng lên trang Paypal được lồng bên trong một biểu mẫu gốc. Tôi đang sử dụng Internet Explorer 7, và vì một số lý do, các hình thức lồng nhau gửi đến máy địa phương của tôi thay vì trang web paypal. Nếu tôi thêm một bản sao của cùng một hình thức lồng nhau trực tiếp sau lần đầu tiên, người đầu tiên đăng lên localhost và bài đăng thứ hai đến nơi được mong đợi.Internet Explorer Nested Form Post

<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

Bạn không được phép lồng các biểu mẫu trong HTML. Cố gắng làm như vậy chỉ dẫn đến nỗi đau khi các trình duyệt cố khôi phục từ lỗi của bạn. Vì vậy, không thử. – Quentin

Trả lời

11

hình thức lồng nhau không vaild, và do đó hành vi của họ là không xác định. Bạn không thể làm tổ được chúng. Chỉ một biểu mẫu có thể gửi cùng một lúc, mặc dù bạn có thể có nhiều biểu mẫu không cần thiết trên một trang (tuy nhiên, chỉ một nút gửi tương ứng sẽ được gửi).

+4

+1 - Ghi chú W3 trên biểu mẫu tại đây: http://www.w3.org/MarkUp/html3/forms.html – Fenton

0

Xử lý sự kiện nhấp nút ở phía máy chủ và đăng lên trang web từ đó. Các biểu mẫu lồng nhau là xhtml không hợp lệ.

3

Có vẻ như tôi đã sử dụng mẫu trang chủ ASP.NET thay vì ASP.NET MVC. Các mẫu ASP.NET bao gồm một thẻ hình thức đó là những gì tạo ra trang biểu mẫu lồng nhau này. Sử dụng mẫu ASP.NET MVC cố định vấn đề của tôi bằng cách loại bỏ các hình thức lồng nhau hoàn toàn.

+1

Đây là nhận xét hữu ích nhất về một số bài đăng giải quyết vấn đề này trên stackoverflow !! – KristianB