Исходя из классического фона ASP, я привык к нескольким формам на странице, но это явно ограничено на странице ASP.NET.
Однако у меня есть ситуация, когда у меня есть форма, которая собирает ввод от пользователя, сохраняет данные в БД, а затем я хочу отобразить (и настроить значения) специальную форму, которая публикуется на веб-сайте PayPal.
Если бы значения полей формы PayPal были статичными, проблем не было бы, но поскольку я хочу манипулировать формой на стороне сервера (настраивать поля qty, desc, price и т. д.), Это буду будет проблемой.
Я рассматривал возможность перенаправления на другую страницу после записи в БД, и я подозреваю, что это сработает достаточно хорошо, но это требует дополнительных усилий, которые могут оказаться ненужными.
Мне также предлагали программно визуализировать другую форму в зависимости от того, на каком этапе цикла я нахожусь. То есть, используйте заполнитель, и на Page_Load я бы сначала добавил форму БД (с дочерними элементами управления) и форму PayPal после Postback.
Этот сценарий должен быть обычным для вас, ребята, поэтому я ищу мнения, советы и любые соответствующие образцы кода, если вы предпочитаете подход.
Я знаю, что справлюсь, но этот проект - средство обучения, поэтому я хочу перенять то, что считается передовой практикой.
Заранее спасибо...
Крис





Базовый подход - использовать две панели на странице - одну для первой формы, а другую - для второй.
Вы можете изменить свойство видимости этих панелей в зависимости от того, какую форму вы хотите отображать (во время page_load или в любое время перед отрисовкой).
У вас может быть несколько форм, только одна форма может иметь атрибут runat = "server".
Есть несколько ответов на то, как заставить PayPal работать; но поскольку это средство обучения, которое может быть обманом. Честно говоря, я бы посмотрел на полноценный API PayPal, а не использовал метод в несколько упрощенной форме (с дополнительным преимуществом, которое должно расширить ваше обучение).
В противном случае да, настройте HTML-форму вне формы на стороне сервера, добавьте в нее литерал и запишите туда кусочки и кусочки.
Возможно, я неправильно понимаю вопрос, но разве вы не можете просто иметь 2 div внутри формы, где в любой момент виден только один. например
<form id = "Form1" method = "post" runat = "server">
<div id = "getUserInput" visible = "true">
<asp:button id = "btnSubmitFirst" />
</div>
<div id = "doSubmissionToPaypal" visible = "false">
<asp:button id = "btnSubmitSecond" />
</div>
</form>
Затем в btnSubmitFirst_Click:
doSubmissionToPaypal.visible=True
getUserInput.visible = false
Что-то в этом роде?
Обходной путь для этого PayPal - использовать Код интеграции Paypal, поскольку Paypal не всегда удобен для интеграции. В основном тяжелая работа сделана за вас.
Я посмотрю на это, но, поскольку это обучающее упражнение, я бы хотел сделать это «вручную», если это возможно.