Это всеобъемлющий вопрос, но один из возможных ответов - сгенерировать вторую форму, в которой есть необходимый код PayPal.
Это упрощенный пример ; обычно есть логика, необходимая, чтобы привести к этой точке. Например, если кнопки должны содержаться в форме по умолчанию ASP.Net, для подключения их к этой второй форме и кода, который содержит правильные скрытые значения, потребуется код сервера и / или клиента.
В вашей веб-форме
<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();
}
Если логика сложная, второй блок кода действительно должен содержаться в вспомогательном классе.
Надеюсь, что это ставит кого-то на правильный путь.