Один из dissadvanced из ASP.NET WebForms является , что только одна форма asp.net разрешено на обычной странице ASP.NET. Одна форма, которая имеет runat="server"
и внутри этой формы, только элементы управления asp.net корректно работают и взаимодействуют с кодом позади.
Однако вы можете сломать это, но не продолжать иметь такую же функциональность asp.net. Вы можете использовать LiteralControl и direct render на странице код кнопки PayPal и только до того, как закрыть глобальную форму, используя </form>
. Только закрытие перед добавлением новых.
Теперь, когда вы это делаете, вы должны забыть сообщение на той же странице и на самом деле иметь его только для сообщения в ПП. Единственный способ иметь некоторую страницу asp.net functionallyty - сохранить ее до закрытия первой формы и установить на 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>
альтернативе вы можете сделать после редиректа, но требуют гораздо больше кода и средней страницы, которые создают почтовую данные PayPal по коду. Вот пример http://www.codeproject.com/Articles/37539/Redirect-and-POST-in-ASP-NET
Те же самые трюки вы можете сделать это с помощью javascript, создать форму с помощью javascript на лету и опубликовать ее на кнопку Paypal, все на одной странице с javascript.
У меня есть все эти методы, все они работают.
Это первое предложение вводит в заблуждение. У вас может быть только одна форма с 'runat = server', но вы можете иметь много форм на одной странице ASP.NET, если они не вложены. Нет причин, по которым вы должны обернуть весь документ в форме, хотя именно так работают большинство шаблонов веб-форм. – MikeSmithDev
@MikeSmithDev У вас есть точка, я изменю ее (или вы сможете, если хотите исправить то, во что верите) – Aristos
Я до сих пор не понял этого. Но я нашел эту статью http: //www.codeproject.com/Статьи/36071/Внедрение-не-ASP-NET-Posts-in-ASP-NET и решение идеально подходят для меня, единственная проблема заключается в том, что мне нужно иметь 5 кнопок на одной странице и не знаю, возможно ли это с помощью это решение может быть? – 1110