10
votes

Est imbriqué possible?

Dans une page de contenu d'une page Web ASP.NET, je voudrais inclure le bouton "PayPal" "Pay maintenant".

Alors, j'ai une page principale et une page de contenu. Dans ma page de contenu, je copier-coller le code PayPal. En particulier, j'utilise un "modalpopupextender" pour permettre à mon utilisateur d'acheter l'objet. Le problème est ... ça ne fonctionne pas. Donc, mes hypothèses sont:

  1. Je ne suis pas sûr, mais je pense que je ne peux pas utiliser un imbriqué
  2. Si ce n'est pas le premier, peut-être que je ne peux peut-être pas utiliser de dans une fenêtre contextuelle modale?

    Quelqu'un peut me suggérer une solution "élégante" pour résoudre ce problème? Merci ...

    Edit: En particulier, ce que j'essaie de faire est de permettre de vendre à partir d'un site Web. J'ai une page principale et une page de contenu. Évidemment dans la page Master, j'ai la "action de forme" classique. Ensuite, je suis allé à PayPal et j'ai reçu ce code: " xxx

    donc je l'ai collé dans ma page de contenu ... comme ça ... sans changer. En particulier, je l'ai collé, dans un panel, qui montrera avec un "modalpopupextender". Ça marche. Mais ce que cela ne fonctionne pas, c'est quand je clique sur le bouton PayPal "Acheter maintenant". Ma page Web ne redirige pas à PayPal, ModalPopup disparaît et rien ne se passe.


0 commentaires

5 Réponses :


4
votes

Vous êtes tout à fait correct, vous ne pouvez pas nidifier s.

Vous pouvez également utiliser l'action du formulaire pour créer une pop up - l'attribut action est l'URL auquel le formulaire publie à.

Vous pouvez cependant avoir beaucoup S sur la page, tant qu'ils ne sont pas imbriqués. Peut-être que cela résoudra votre problème.

Pouvez-vous décrire exactement ce que vous essayez d'atteindre? Il n'est pas clair de votre question quel est le problème.


0 commentaires

0
votes

Vous avez raison dans votre première hypothèse, vous ne pouvez pas avoir de tags de formulaire imbriqués dans une page.

Il vous suffit de mettre le code pour la fenêtre contextuelle en dehors du formulaire, vous pouvez avoir un nombre de formulaires dans la page tant qu'ils ne sont pas imbriqués.


0 commentaires

1
votes

Si je comprends correctement la question, vous essayez de créer une fenêtre contextuelle HTML dynamique contenant un formulaire PayPal. Vous rencontrez des problèmes car la popup contient un formulaire, mais le HTML pour la popup est déjà contenu dans un formulaire.

Si le problème que vous rencontrez est ce que j'ai décrit ci-dessus, la solution est assez simple. Vous devez déplacer tout le HTML pour la fenêtre contextuelle en dehors du formulaire de sortie . Si vous utilisez CSS pour établir correctement votre site, il doit être possible d'afficher votre pop-up dynamique où que vous ayez besoin de sur la page en utilisant un positionnement relatif ou absolu. Le HTML pour la pop up n'a pas besoin d'être contenu dans une autre formulaire. Il peut également être possible (peut-être même nécessaire) de mettre le contenu de la popup dans un iframe , qui peut être soumis entièrement indépendamment du reste de la page. La sémantique de la manière dont votre popup fonctionne dépend de la manière dont vous avez besoin de votre page pour fonctionner.

Donc, pour être clair ... il n'est pas possible de nier formulaire éléments. Cependant, il n'est également pas nécessaire d'accomplir vos besoins.

EDIT:

Pour améliorer la réponse ci-dessus à la lumière de la question mise à jour. Vous pouvez avoir plusieurs panneaux de contenu sur une page principale. Il devrait être entièrement possible de créer un autre panneau de contenu en dehors de votre élément de votre page maître ... et placez votre popup modulaire à l'intérieur de ce panneau de contenu alternatif. Ma réponse ci-dessus s'appliquerait toujours, car vous n'avez plus de formes imbriquées.


2 commentaires

Salut Jrista. Tu as raison ... mais malheureusement, mon problème reste toujours. Ceci parce que: 1. Si je veux utiliser le "popupextender modal", je ne peux faire que si j'insère mon extension entre un "Form Runat = Server". Mais si je fais cela, j'obtiens l'erreur "un seul formulaire runat = serveur par page" (I Double formulaire Runat Server, le premier de la page maître, le second pour le bouton PayPal) ... MMM C'est un problème gênant ...


@stery: Il devrait être possible de créer une pop up dynamique en utilisant uniquement CSS et JavaScript (je vous recommande JQuery ou MooTools.) Vous n'êtes pas limité à utiliser uniquement des extensions ASP.NET pour obtenir un site Web dynamique. Il existe des charges de ressources sur le réseau qui expliquent comment créer des popups dynamiques modales avec jQuery ... Je vous recommande vivement de les regarder.



18
votes

J'ai aussi eu ce problème exacte et je ne pouvais pas croire que PayPal n'avait pas fourni une sorte de solution pour les développeurs .NET !!

Voici comment je résolvai-je: P>

<asp:ImageButton ID="btnPayNow" runat="server" ImageUrl="myPayPalButton.jpg" 
 PostBackUrl="https://www.paypal.com/cgi-bin/webscr" OnClick="btnPayNow_Click"/>


1 commentaires

C'est exactement ce que cela a résolu mon problème ... merci et merci beaucoup à une autre réponse ... ils sont tous corrects ...



0
votes

La réponse de DAL est correcte! (Ne pas prendre de crédit avec ma réponse)

J'ai eu un problème similaire dans ASP.NET (4.0) lorsque vous essayez de soumettre des données à SagePay (identiques sur la publication du formulaire PayPal). J'écris les champs de formulaire en utilisant de manière dynamique des panneaux dans le code-derrière en utilisant xxx

J'écrivais le tout dynamiquement aussi, alors quand il est venu de déboguer j'ai reçu Aucun avertissement concernant la question que tout mon site.master est dans A - Ceci n'est pas visible d'une page .aspx utilisant le maître comme modèle! C'était assez frustrant ... jusqu'à ce que je lisais que vous ne pouvez pas avoir un imbriqué ... Il n'y a que deux alternatives à ceci:

1) Déplacez les détails du formulaire à l'extérieur du premier qui est dans mon Site.master de la page .aspx elle-même. (Je n'ai pas aimé l'idée de cela, Messy Messy!)

2) Créez un autre contrôle qui n'est pas de poster mes données.


J'ai choisi ce dernier ! xxx

Le bouton posté sur SagePay, a pris mes champs générés de manière dynamique (appelé de la page .aspx) et, comme ils étaient déjà à l'intérieur de mon site.master - tous ont fonctionné. bien! - J'espère que cela aide tout le monde à utiliser HTML généré de manière dynamique avec des formulaires.


0 commentaires