Моя кнопка Pay Pal не будет ссылаться на оплату Pal. Это только обновляет страницу, почему? - PullRequest
4 голосов
/ 27 апреля 2010

У меня есть следующий код на странице регистрации, чтобы перейти к кнопке PayPal. Но когда я нажимаю на кнопку, она просто обновляет страницу.

Это то, чего мне не хватает? Я должен иметь возможность включить кнопку PayPal на странице aspx правильно?

    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <asp:Panel runat="server" ID="pnlRegisterPage" CssClass="registerPage">
        <table>
          <tr>
            <td><p>Plain text</p></td>
            <td>
                <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
                <input type="hidden" name="cmd" value="_s-xclick">
                <input type="hidden" name="hosted_button_id" value="Z8TACKRHQR722">
                <table>
                <tr><td><input type="hidden" name="on0" value="Registration Type">Registration Type</td></tr><tr><td><select name="os0">
                    <option value="Team">Team $80.00</option>
                    <option value="Individual">Individual $40.00</option>
                </select> </td></tr>
                </table>
                <input type="hidden" name="currency_code" value="USD">
                <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
                <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
                </form>
            </td>
        </tr>
    </table>

</asp:Panel>
</asp:Content>

Мастер-страница

<body>
    <form id="form1" runat="server">
    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
    </asp:ToolkitScriptManager>
    <div class="masterbody">
        <center>
            <asp:Image runat="server" ID="imgLogo" ImageUrl="" /></center>
        <div class="menubar">
            <div class="loginview">                                   
            <asp:LoginView ID="MenuBar" runat="server">
                <AnonymousTemplate>                                                             
                </AnonymousTemplate>
                <LoggedInTemplate>
                </LoggedInTemplate>
            </asp:LoginView>
            </div>
        </div>        
        <div>
            <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
            </asp:ContentPlaceHolder>
        </div>
    </div>

    <div class="footer"></div>
    </form>        
</body>

Ответы [ 6 ]

6 голосов
/ 27 апреля 2010

На главной странице показано, что ContentPlaceHolder1 находится внутри формы ASP.NET runat = "server", поэтому вы не сможете разместить форму PayPal внутри этого региона. Вам нужно расположить его так, чтобы форма PayPal не находилась внутри какой-либо другой формы.

Возможное решение найдено здесь: http://www.codersbarn.com/post/Solution-to-ASPNET-Form---PayPal-Problem.aspx, но я не думаю, что вы сможете иметь какие-либо события обратной передачи на любой странице с отключенной визуализацией формы.

1 голос
/ 10 марта 2016
Its simple, Just add another ContentPlaceHolder in mater page use this content place holder for paypal button. Like this:
 Master Page

<body>
    <form id="form1" runat="server">
    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
    </asp:ToolkitScriptManager>
    <div class="masterbody">
        <center>
            <asp:Image runat="server" ID="imgLogo" ImageUrl="" /></center>
        <div class="menubar">
            <div class="loginview">                                   
            <asp:LoginView ID="MenuBar" runat="server">
                <AnonymousTemplate>                                                             
                </AnonymousTemplate>
                <LoggedInTemplate>
                </LoggedInTemplate>
            </asp:LoginView>
            </div>
        </div>        
        <div>
            <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
            </asp:ContentPlaceHolder>
        </div>
    </div>

    </form>        
<asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server">
            </asp:ContentPlaceHolder>

</body>


<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
    past paypal button code here:

                <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
                <input type="hidden" name="cmd" value="_s-xclick">
                <input type="hidden" name="hosted_button_id" value="Z8TACKRHQR722">
                <table>
                <tr><td><input type="hidden" name="on0" value="Registration Type">Registration Type</td></tr><tr><td><select name="os0">
                    <option value="Team">Team $80.00</option>
                    <option value="Individual">Individual $40.00</option>
                </select> </td></tr>
                </table>
                <input type="hidden" name="currency_code" value="USD">
                <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
                <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
                </form>
    </asp:Content>
1 голос
/ 11 апреля 2014

Мое предпочтительное решение - это исправить с помощью Javascript.

Как указано в других ответах, проблема заключается в том, что форма кнопки PayPal встроена в форму .Net, что препятствует отправке формы PayPal в нужное место.

Чтобы обойти это, элемент формы PayPal можно удалить, а Javascript можно использовать, чтобы изменить действие формы .Net, указав на PayPal, а затем отправить по щелчку.

Следующие изменения необходимо внести в исходный код:

  • Теги были удалены
  • Входное изображение для отправки изменено на тег 'img'
  • К основному изображению был добавлен онклик, во-первых, изменив действие формы для указания на PayPal, а затем отправив форму.
  • Добавлен стиль 'курсор: указатель', чтобы сохранить внешний вид кнопки

Результирующий код кнопки PayPal:

<input type="hidden" name="cmd" value="_s-xclick"
<input type="hidden" name="hosted_button_id" value="xxxxxxxx">
<img style="cursor:pointer;" alt="PayPal – The safer, easier way to pay online." border="0" src="https://www.paypalobjects.com/en_US/GB/i/btn/btn_subscribeCC_LG.gif" onclick="document.forms[0].action='https://www.paypal.com/cgi-bin/webscr';document.forms[0].submit();" />
<img alt="" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1">
0 голосов
/ 13 января 2014
<asp:ImageButton ID="ImageButton1" runat="server"
   ImageUrl="https://www.paypal.com/en_US/i/btn/btn_buynow_LG.gif"
   PostBackUrl="https://www.paypal.com/cgi-bin/webscr" />

удалось решить эту проблему с помощью кнопки изображения. подробнее см. Здесь

0 голосов
/ 30 сентября 2012

Поместите </form> конечный тег непосредственно перед первой кнопкой PayPal <form>.
Это сработало для меня

0 голосов
/ 27 апреля 2010
...