我是编程新手,但正在尝试学习。我使用 C# 运行带有 asp.net webform 项目的 visual studio 2010。我正在尝试在其中一个页面上实现 Paypal 立即购买按钮,并且生成的代码也在表单标签中。无论是哪个按钮,页面上的第一个按钮都不起作用,并且下方有一条蓝色实线。所有其他按钮都可以正常工作。即使我删除它,下一个按钮成为页面上的第一个然后它也不起作用....我正在学习因为所有页面都是表单并且生成的代码也是一个表单,我不能在里面有一个表单表单。这样对吗? 有没有办法解决这个问题……我真正知道的是一点 HTML 和一点 CSS,我正在尝试学习 JavaScript、C#、XML、CSS、ASP.NET 以及 Visual Studio 本身。任何帮助将不胜感激。如果有人想看看我在说什么,请访问 www.curbappealfordummies.net/Packages.aspx 这是我正在处理的网站和网站管理员......谢谢你们的帮助。
最佳答案
这是一个影响广泛的问题,但一个可能的答案是生成第二个表格,其中包含所需的 PayPal 代码。
这是一个简化的例子;通常需要逻辑来引导到这一点。例如,如果按钮需要包含在 ASP.Net 默认表单中,则需要服务器和/或客户端代码将它们连接到第二个表单并确保它包含正确的隐藏值。
在您的 WebForm 中
<form id="form1" runat="server">
<!-- Contents of your server form -->
</form>
<%=base.GetMarkupOutsideDefaultForm() %>
在您的代码隐藏中
public string GetMarkupOutsideDefaultForm()
{
//
// Return the markup needed for a PayPal form,
// including javascript needed to automatically submit it.
// AppSettings can be any configuration object that contains
// the needed URL (or you can hardcode it)
StringBuilder sb = new StringBuilder();
sb.Append( "<form action=\"" + AppSettings.PayPalUrl + "\" method=\"post\" id=\"frmPayPal\" target=\"_blank\">" );
// add hidden PayPal fields
sb.Append( "</form>" );
sb.Append( "<script type=\"text/javascript\">document.forms[\"frmPayPal\"].submit();</script>" );
return sb.ToString();
}
如果逻辑比较复杂,第二 block 代码确实应该包含在辅助类中。
希望这能让某人走上正确的道路。
关于javascript - Web 表单页面内的 ASP.NET 4 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3757679/