从 runat 服务器 asp.net 内部添加

Posted

技术标签:

【中文标题】从 runat 服务器 asp.net 内部添加【英文标题】:Adding from within from runat server asp.net 【发布时间】:2012-11-14 17:34:12 【问题描述】:

我在页面上方有一个注册页面,有一个运行在服务器上的表单标签。我想添加一个由贝宝支付的代码。该代码包含一个简单的 html 控件而不是 asp.net 控件,但是当我将代码粘贴到页面时,它不会将其提交给它回发表单的操作,并且根本不使用 paypal 代码。当我检查代码的来源时,它没有显示贝宝给出的来自标签。它不会对贝宝给出的表格进行排序。我还必须采用顶部的表单,因为我的页面有 asp.net 控件,这就是为什么这是必要的。

请告诉解决办法

【问题讨论】:

我需要使用以下提到的代码解决方案,但无法使用它。 '
sandbox.paypal.com/cgi-bin/webscr" method="post"> sandbox.paypal.com/en_US/i/btn/btn_subscribeCC_LG.gif" name="submit" /> sandbox.paypal.com/en_US/i/scr/pixel.gif" />
'
【参考方案1】:

我假设您使用的是 PayPal 标准版。

如果是这样,请从(常规 ASP.Net)表单中收集提交的值。然后像这样将它们转发到 PayPal -

protected void SubmitRadButton_Click(object sender, EventArgs e)

    string paypalUrl = IsTestMode ? 
        "https://www.sandbox.paypal.com/us/cgi-bin/webscr" : 
        "https://www.paypal.com/us/cgi-bin/webscr";

    var builder = new StringBuilder();

    builder.Append(paypalUrl);
    builder.AppendFormat("?cmd=_xclick&business=0", EmailTextBox.Text);
    builder.Append("&lc=US&no_note=0&currency_code=USD");
    builder.AppendFormat("&item_name=0", ItemNameHiddenField.Value);

    builder.AppendFormat("&amount=0", AmountTextBox.Text);
    builder.AppendFormat("&return=0", ReturnUrl);
    builder.AppendFormat("&cancel_return=0", CancelUrl);

    builder.AppendFormat("&undefined_quantity=0", 1);
    builder.AppendFormat("&item_number=0", ItemNumberHiddenField.Value);

    builder.AppendFormat("&cpp_header_image=0", HeaderImage);

    HttpContext.Current.Response.Redirect(builder.ToString());

【讨论】:

我需要使用下面提到的代码,还需要在页面上准备会话,并且还需要多个 asp.net 控件。因此,我需要将我的表单作为 runat 服务器,而上述方法不适用于我的 paypal 订阅。如果这里有更多的解决方案,请分享它 您的代码在 ASP.Net 中不起作用。我更新了代码。它基本上收集用户提交的表单(在按钮单击事件之后),并将它们发布到 PayPal。【参考方案2】:

我尝试了同样的方法,但没有成功。请查看他们提供的我的贝宝代码,并让我知道如何执行此操作。我以前尝试过上述方法,但这次不能使用代码。可能是订阅代码不同。阅读下面的代码,让我知道如何使用它。

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
                            <input type="hidden" name="cmd" value="_s-xclick" />
                            <input type="hidden" name="hosted_button_id" value="LL5LZEB8L6T8S" />
                            <input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_subscribeCC_LG.gif"
                                name="submit"  />
                            <img  border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif"
                                  />
                            </form>

谢谢

【讨论】:

我需要使用上面提到的代码,还需要在页面上准备会话,并且还需要多个 asp.net 控件。所以,我需要将我的表单作为 runat 服务器,而上述方法在我的情况下不适用于 paypal subscriptoin。如果这里有更多解决方案,请分享。【参考方案3】:

在处理付款时,您不得在 asp.net 中使用 asp.net 表单标签。

使用这个

<body onload="document.paypal.submit();">
  <form name="paypal" action='<%= ConfigurationManager.AppSettings["PayPalSubmitUrl"] %>'
method="post">

      // rest html goes here

  </form>
</body>

我总是这样处理贝宝

【讨论】:

以上是关于从 runat 服务器 asp.net 内部添加的主要内容,如果未能解决你的问题,请参考以下文章

Asp.Net揭秘读书笔记

如何使用 ASP.NET 从后面的代码中添加一个额外的 css 类?

ASP.NET 中 GridView 中的内部网格线

如何在 asp.Net 的脚本标签上使用 runat="server"

从内部网站为 ASP.NET Core 添加用户

从 asp.net 中的代码中删除属性