Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将javascript方法(JSON对象)的结果发送到asp.net webform上的代码?_C#_Javascript_Asp.net_Json_Webforms - Fatal编程技术网

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

C# 如何将javascript方法(JSON对象)的结果发送到asp.net webform上的代码?,c#,javascript,asp.net,json,webforms,C#,Javascript,Asp.net,Json,Webforms,我有一段javascript,它处理我的一些表单数据,结果需要提交给我的代码,以便我可以将其映射到对象并保存到数据库: 表格如下: <form method="POST" id="paymentForm"> <span class="payment-errors" runat="server"></span> <div> <label> <span>Card Numb

我有一段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>

卡号

CVC
有效期(年月日)

付款
这里是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>

//这将在下面的createToken调用中标识您的网站
//您需要将真正的发布密钥放在这里。
Stripe.setPublishableKey('pk_test_1NDJ3HA1Mv2SY9XMM');
// ...
//我正在使用jquery处理付款。它知道该以什么形式出现
//根据“付款单”名称进行处理
jQuery(函数($){
//付款提交
$('#ctl01')。提交(函数(事件){
警报('In.submit()');
var$form=$(此);
//禁用“提交”按钮以防止重复单击
$form.find('button').prop('disabled',true);
createToken($form,stripeResponseHandler);
//阻止使用默认操作提交表单
返回false;
});
//如果有错误,如果有,则会显示在页面上
//无错误这是它被发送到服务器的地方。
var stripeResponseHandler=函数(状态、响应){
变量$form=$(“#ctl01”);
if(response.error){
//在表单上显示错误
$form.find('.payment errors').text(response.error.message);
$form.find('button').prop('disabled',false);
}否则{
//令牌包含id、last4和卡类型
var token=response.id;
//将令牌插入表单,以便将其提交到服务器
$form.append($('').val(标记));
//并提交
$form.get(0.submit();
}
};
});
所以js创建了一个条带标记,但我不知道如何在我点击submit时让它击中我的代码。页面只是闪烁,什么也没有

我试图使按钮成为一个asp.net按钮,并将事件绑定到它,但没有效果


我是否应该在Page_Load()中执行一些操作,以便能够将这些数据发布到页面?

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

  • 手动调用
    \uuu doPostBack
    JavaScript函数以导致服务器端回发。如果希望与页面上的ASP.NET服务器控件交互,我建议使用这种方法
下面是另一个StackOverflow问题,详细说明如何发送

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

以下是如何使用。

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

  • 手动调用
    \uuu doPostBack
    JavaScript函数以导致服务器端回发。如果希望与页面上的ASP.NET服务器控件交互,我建议使用这种方法
下面是另一个StackOverflow问题,详细说明如何发送

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

这里是如何使用的。

你能在@mshsayem上扩展一下吗?我相信我以前见过,但我不确定如何实现它,因为我需要先执行javascript,然后将结果发送给代码隐藏。你能在@mshsayem上扩展一下吗?我相信我以前见过,但我不确定如何实现它,因为我需要先执行javascript,然后将结果发送给代码隐藏。谢谢你的建议!我要试试看@davidisawesome-祝你好运,如果你觉得这个答案有用,那么请随意投票和/或接受答案。现在投票,但这会引出一个后续问题。我知道有点理解uu DoPostBack(),但这让我想知道是应该将需要执行的js包装在其中,还是应该在submit按钮上的OnClick=“…”事件中使用它。我用[WebMethod]尝试了ajax,但没有达到预期效果。我不会在
OnClick=
上这样做,因为你说你需要一些JavaScript处理,然后将结果数据发送到服务器,对吗?您是否在页面方法中(通过Chrome开发者工具、Firebug或IE F12工具)出现错误?谢谢您的建议!我要试试看@davidisawesome-祝你好运,如果你觉得这个答案有用,那么请随意投票和/或接受答案。现在投票,但这会引出一个后续问题。我知道有点理解uu DoPostBack(),但这让我想知道是应该将需要执行的js包装在其中,还是应该在OnClick=“…”ev中使用它