gpt4 book ai didi

c# - 如何将 javascript 方法(JSON 对象)的结果发送到 asp.net webform 上的代码隐藏?

转载 作者:行者123 更新时间:2023-11-28 02:03:58 25 4
gpt4 key购买 nike

我有一段 JavaScript 可以处理一些表单数据,结果需要提交到我的代码隐藏中,以便我可以将其映射到对象并保存到数据库:

表格如下:

<form method="POST" id="paymentForm">
<span class="payment-errors" runat="server"></span>

<div>
<label>
<span>Card Number</span>
<br />
<input type="text" size="20" data-stripe="number" runat="server" placeholder="1111222233334444" />
</label>
</div>

<div>
<label>
<span>CVC</span>
<br />
<input type="text" size="4" data-stripe="cvc" runat="server" placeholder="123"/>
</label>
</div>

<div>
<label>
<span>Expiration (MM/YYYY)</span>
<br />
<input type="text" size="2" data-stripe="exp-month" runat="server" placeholder="01"/>
</label>
<br />
<input type="text" size="4" data-stripe="exp-year" runat="server" placeholder="2020"/>
</div>
<button type="submit">Submit Payment</button>
</form>

这是 js 位:

<script type="text/javascript">
// This identifies your website in the createToken call below
// You need to put your real publish key here.
Stripe.setPublishableKey('pk_test_1nDJ3hA1Mv2Sy9bUoYcBMXmm');
// ...
// I am using jquery to process the payment. It knows what form to
// process it on based on the name 'payment-form'
jQuery(function ($) {
//payment submission
$('#ctl01').submit(function (event) {
alert('In .submit()');
var $form = $(this);

// Disable the submit button to prevent repeated clicks
$form.find('button').prop('disabled', true);

Stripe.createToken($form, stripeResponseHandler);

// Prevent the form from submitting with the default action
return false;
});

//if there is a error, it is displayed on the page if there was
//no error this is where it gets sent to the server.
var stripeResponseHandler = function (status, response) {
var $form = $('#ctl01');

if (response.error) {
// Show the errors on the form
$form.find('.payment-errors').text(response.error.message);
$form.find('button').prop('disabled', false);
} else {
// token contains id, last4, and card type
var token = response.id;
// Insert the token into the form so it gets submitted to the server
$form.append($('<input type="hidden" name="stripeToken" />').val(token));
// and submit
$form.get(0).submit();
}
};
});
</script>

因此,js 创建了一个 Stripe token ,但我不知道当我点击提交时如何让它命中我的代码隐藏。页面只是闪烁,什么也没有。

我试图使该按钮成为一个 asp.net 按钮,并绑定(bind)一个事件,但没有成功。

我应该在 Page_Load() 中执行一些操作,以便能够在页面的 POST 中包含此数据吗?

最佳答案

我看到两个直接选项,具体取决于您想在服务器端代码中执行的操作:

  • 手动调用 __doPostBack JavaScript 函数以引发服务器端回发。如果您想与页面上的 ASP.NET 服务器控件交互,我会推荐这种方法。

这是另一个 StackOverflow 问题,详细说明了如何发送 Multiple parameters in __doPostBack .

  • 调用 ASP.NET AJAX 页面方法,该方法本质上是托管在 ASP.NET 页面内的独立 Web 服务。如果您只想调用一些服务器端逻辑(即从数据库保存或检索数据),但不需要页面本身的实例,我会推荐这种方法,因为这是一个异步操作,并且页面中没有任何内容控制将可用。这非常适合将数据发送到服务器并获取 jQuery 可以处理的数据。

这里是如何使用jQuery to directly call ASP.NET AJAX page methods .

关于c# - 如何将 javascript 方法(JSON 对象)的结果发送到 asp.net webform 上的代码隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18049131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com