Internet Explorer嵌套表单发布

时间:2010-06-23 13:41:04

标签: asp.net asp.net-mvc

我正在使用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>

3 个答案:

答案 0 :(得分:11)

嵌套表单不是vaild,因此它们的行为是未定义的。你就是无法嵌套它们。虽然您可以在页面上放置多个未打印的表单(但只提交相应的提交按钮之一),但一次只能提交一个表单。

答案 1 :(得分:3)

看起来我使用的是ASP.NET母版页模板而不是ASP.NET MVC模板。 ASP.NET模板包含一个表单标记,它是创建此嵌套表单页面的内容。使用ASP.NET MVC模板通过完全删除嵌套表单来解决我的问题。

答案 2 :(得分:0)

处理服务器端的按钮单击事件并从那里发布到站点。嵌套表单无效xhtml。