Вопрос

Исходя из классического опыта работы с ASP, я привык к нескольким формам на странице, но это явно ограничено на странице ASP.NET.

Однако у меня есть ситуация, когда у меня есть форма, которая собирает входные данные от пользователя, сохраняет данные в базу данных, а затем я хочу отобразить (и настроить значения) специальную форму, которая публикуется на веб-сайте PayPal.

Если бы значения полей формы PayPal были статическими, проблем бы не было, но поскольку я хочу манипулировать формой на стороне сервера (чтобы настроить поля qty, desc, price и т.д.), Это будет будет проблемой.

Я рассматривал возможность перенаправления на другую страницу после записи в базу данных, и я подозреваю, что это сработало бы довольно хорошо, но это требует дополнительных усилий, которые могут оказаться ненужными.

Мне также было предложено, чтобы я мог программно отобразить другую форму, в зависимости от того, в какой части цикла я нахожусь.То есть используйте заполнитель, а в Page_Load я бы изначально добавил форму базы данных (в комплекте с дочерними элементами управления) и форму PayPal после обратной отправки.

Этот сценарий должен быть обычным для вас, ребята, поэтому я ищу мнения, советы и любые соответствующие примеры кода, если у вас есть предпочтительный подход.

Я знаю, что справлюсь, но этот проект - средство обучения, поэтому я хочу перенять то, что считается лучшей практикой.

Заранее благодарю...

Крис

Это было полезно?

Решение

У вас может быть несколько форм, просто только одна форма может иметь runat="server" атрибут.

Есть множество ответов на вопрос, как заставить PayPal работать;но поскольку это обучающий инструмент, это может быть обманом.Честно говоря, я бы посмотрел на полноценный API PayPal, а не использовал метод несколько упрощенной формы (с дополнительным преимуществом, что это должно еще больше растянуть ваше обучение).

В противном случае да, настройте HTML-форму вне серверной формы, добавьте в нее литерал и запишите туда нужные фрагменты.

Другие советы

Базовый подход заключается в использовании двух панелей на странице - одной для первой формы и другой для второй.

Вы можете изменить свойство видимости этих панелей в зависимости от того, какую форму вы хотите отобразить (во время загрузки страницы или в любое время перед рендерингом).

Возможно, я неправильно понимаю вопрос, но разве вы не можете просто иметь 2 divs внутри формы, где в любой момент виден только один.например ,

<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 не всегда наиболее удобен для интеграции.Тяжелая работа в основном делается за вас.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top