2013-04-28 73 views
0

我将代码后面的表单添加到asp:PlaceHolder控件中。
当我将表格添加到placeholder<form>标签丢失。
Asp.net将其从某些原因中删除。
为什么在表单中形成表单在Internet Explorer中不起作用

但是我找到了解决方法。我已经加入(空单):

<form></form> 
<form... my form code that comes from code behind... 

而且能正常工作在所有浏览器,除了IE
任何想法如何解决此问题在IE

也许这是很重要的)这种形式实际上是一个PayPal按钮代码,我从数据源得到它。
我需要添加页面上10个按钮:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">   
<input type="hidden" name="cmd" ... 

回答

1

之一dissadvanced的asp.net web表单的是只有一个asp.net的形式允许在正常asp.net页面。一个具有runat="server"的表单,其内部只有asp.net控件才能正常工作,并与后面的代码共同工作。

但是,你可以打破这一点 - 但不能继续拥有相同的asp.net功能。你可以做的是使用LiteralControl并直接在页面上渲染PayPal按钮代码,并且只需在使用</form>关闭全局窗体之前。只是在添加新的之前关闭。

现在,当你这样做的时候,你必须在相同的页面上将帖子忘回来,并且实际上只有在发布到PP之后才能发布。具有一些asp.net页面功能的唯一方法是在第一个窗体关闭之前保留它,并在web.config上设置保持验证最上层的选项。

所以,你开始

<form name="aspnetForm" method="post" action="/ui/login.aspx?ReturnUrl=General.aspx" > 
    ... some controls that post back to aspx page  
</form> 

和你结束了

<form name="aspnetForm" method="post" action="/ui/login.aspx?ReturnUrl=General.aspx" > 
    ... some controls that post back to aspx page  
    ... up to here maybe the buttons will work for the page, after that not any more 
</form> //<---- added by you 
    // follow the PayPal buttons 
    <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">   
    <input type="hidden" name="cmd" ... > 
    </form> 

    // second button, etc 
    <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">   
    <input type="hidden" name="cmd" ... > 
    </form> 
// now this close form is orphan.... 
</form> 

替代就可以使后重定向,但需要更多的代码和一个中间页,创造支付宝发布数据在代码后面。这里是一个例子http://www.codeproject.com/Articles/37539/Redirect-and-POST-in-ASP-NET

同样的技巧,你可以用javascript做到这一点,创建一个使用JavaScript的表单,并将其发布到贝宝按钮,所有与JavaScript的同一页。

我已经使用了所有这些技术,它们都可以工作。

+0

第一句话是误导性的。您只能使用'runat = server'来创建一个表单,但只要它们没有嵌套,您可以在一个ASP.NET页面中拥有多个表单。没有理由必须将整个文档包装在表单中,尽管这是大多数webforms模板的工作原理。 – MikeSmithDev 2013-04-29 18:00:07

+0

@MikeSmithDev你有一点,我会改变它(或者你可以,如果你想纠正你所相信的) – Aristos 2013-04-29 18:08:29

+0

我仍然没有想到这一点。但是我找到了这篇文章http://www.codeproject。com/Articles/36071/Implementing-Non-ASP-NET-Posts-in-ASP-NET和解决方案对我来说很完美,唯一的问题是我需要在一个页面上有5个按钮,不知道这是可能的这个解决方案可能? – 1110 2013-04-29 20:56:44

相关问题