我正在使用ASP.NET MVC创建一个发布到Paypal沙箱的页面。发布到Paypal网站的表单嵌套在父表单中。我正在使用Internet Explorer 7,由于某种原因,嵌套表单发布到我的本地计算机而不是paypal网站。如果我在第一个之后直接添加相同嵌套表单的副本,则第一个发布到localhost,第二个发布到预期的位置。
<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>
答案 0 :(得分:11)
嵌套表单不是vaild,因此它们的行为是未定义的。你就是无法嵌套它们。虽然您可以在页面上放置多个未打印的表单(但只提交相应的提交按钮之一),但一次只能提交一个表单。
答案 1 :(得分:3)
看起来我使用的是ASP.NET母版页模板而不是ASP.NET MVC模板。 ASP.NET模板包含一个表单标记,它是创建此嵌套表单页面的内容。使用ASP.NET MVC模板通过完全删除嵌套表单来解决我的问题。
答案 2 :(得分:0)
处理服务器端的按钮单击事件并从那里发布到站点。嵌套表单无效xhtml。