Pregunta

Al tener experiencia en ASP clásico, estoy acostumbrado a múltiples formularios en una página, pero esto está claramente limitado en una página ASP.NET.

Sin embargo, tengo una situación en la que tengo un formulario que recopila información del usuario, guarda los datos en una base de datos y luego quiero representar (y modificar los valores) un formulario especial que se publica en el sitio web de PayPal.

Si los valores de los campos del formulario de PayPal fueran estáticos, no habría ningún problema, pero como quiero manipular el formulario del lado del servidor (para modificar los campos cantidad, descripción, precio, etc.), esto voluntad ser un problema.

Estaba considerando redirigir a una página diferente después de escribir en la base de datos y sospecho que esto funcionaría bastante bien, pero es un esfuerzo adicional que puede ser innecesario.

También me han sugerido que podría representar mediante programación una forma diferente, dependiendo de en qué parte del ciclo me encuentre.Es decir, use un marcador de posición y en Page_Load agregaría un formulario de base de datos (completo con controles secundarios) inicialmente y el formulario de PayPal después de una devolución de datos.

Este escenario tiene que ser común para ustedes, por lo que estoy buscando opiniones, consejos y ejemplos de código relevantes si prefieren el enfoque.

Sé que puedo salir adelante, pero este proyecto es un vehículo de aprendizaje, por lo que quiero adoptar lo que se considera mejores prácticas.

Gracias de antemano...

cris

¿Fue útil?

Solución

Puede tener múltiples formularios, pero solo un formulario puede tener el runat="server" atributo.

Hay muchas respuestas para hacer que PayPal funcione;pero como es un vehículo de aprendizaje, puede ser una trampa.Honestamente, miraría la API de PayPal completa en lugar de usar el método de forma algo simplista (con la ventaja adicional de que debería ampliar aún más su aprendizaje).

De lo contrario, sí, configure un formulario HTML fuera del formulario del lado del servidor, agregue un literal y escriba los fragmentos allí.

Otros consejos

Un enfoque básico es utilizar dos paneles en la página: uno para el primer formulario y otro para el segundo.

Puede cambiar la propiedad de visibilidad de estos paneles según el formulario que desee mostrar (durante la carga de la página o en cualquier momento antes de la renderización).

Tal vez estoy entendiendo mal la pregunta, pero ¿no puedes simplemente tener 2 divs dentro del formulario, donde solo uno es visible en cualquier momento?p.ej.

<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>

Luego, en btnSubmitFirst_Click:

 doSubmissionToPaypal.visible=True
 getUserInput.visible = false

¿Algo por el estilo?

Una solución alternativa para este PayPal es utilizar el Código de integración de Paypal ya que Paypal no siempre es el más amigable para integrar.El trabajo duro básicamente está hecho por usted.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top