首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将值从JavaScript传递给C#后,如何对其进行自动操作?

将值从JavaScript传递给C#后,如何对其进行自动操作?
EN

Stack Overflow用户
提问于 2018-06-12 06:33:23
回答 1查看 41关注 0票数 0

我在做一个收费系统。客户支付货物的API运行在JavaScript中:

代码语言:javascript
复制
function jsApiCall()
{
   WeixinJSBridge.invoke(
   'getBrandWCPayRequest',
   <%=wxJsApiParam%>,
    function (res)
    {
        WeixinJSBridge.log(res.err_msg);
        //alert(res.err_code + res.err_desc + res.err_msg);
        switch(res.err_msg)
        {
            case 'get_brand_wcpay_request:cancel':
                document.getElementById("Hidden1").value=1; 
                alert('payment canceled!');     
                break;
            case 'get_brand_wcpay_request:fail':         
                document.getElementById("Hidden1").value=2; 
                alert('payment failed!');
                break;
            case 'get_brand_wcpay_request:ok':     
                document.getElementById("Hidden1").value=3; 
                alert('payment successful!');
                break;
        }
     }
    );
}

并使用以下方法从jsApiCall()获得相应的值。

代码语言:javascript
复制
<input id="Hidden1" type="hidden" runat="server" />

在获得Hidden1.Value的值后,我需要将一些信息添加到服务器中的文本文件中,但不应该要求客户单击任何按钮或执行任何操作。我应该在哪里编写以下后端代码?谢谢。

代码语言:javascript
复制
string rst = Hidden1.Value;
switch (rst)
{
    case "1":        
        using (StreamWriter sw = File.AppendText(path))
        {
            sw.WriteLine("1");
        }
        break;
    case "2":
        using (StreamWriter sw = File.AppendText(path))
        {
            sw.WriteLine("2");
        }
        break;
    case "3":
        using (StreamWriter sw = File.AppendText(path))
        {
            sw.WriteLine("3");
        }
        break;
    default:
        Response.Write("failed to update .txt file");
        break;
}     

总之,我想要的是在任何客户成功付款后立即在服务器中记录一些信息。如果这种方法不起作用,我也很感激有人能给我一些建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-12 10:06:34

首先在js端编写一个函数--这个函数将负责从客户端获取值,然后提交给服务器。

要向服务器提交值,您有两个选项(根据您的需要):

  • 在表单中隐藏输入,并强制该表单从新的js函数中提交。
  • 使js函数直接通过ajax调用调用服务器方法。

可以在switch(res.err_msg)或隐藏输入的变化事件上调用这个新的js函数。

示例:

代码语言:javascript
复制
function (res)
    {
        WeixinJSBridge.log(res.err_msg);
        //alert(res.err_code + res.err_desc + res.err_msg);
        switch(res.err_msg)
        {
            case 'get_brand_wcpay_request:cancel':
                document.getElementById("Hidden1").value=1; 
                mySubmitToServer(1);
                alert('payment canceled!');     
                break;
            case 'get_brand_wcpay_request:fail':         
                document.getElementById("Hidden1").value=2; 
                mySubmitToServer(2);
                alert('payment failed!');
                break;
            case 'get_brand_wcpay_request:ok':     
                document.getElementById("Hidden1").value=3; 
                mySubmitToServer(3);
                alert('payment successful!');
                break;
        }
     }
    );
}

function mySubmitToServer(valToSubmit)
{
   // submit the form
   // OR
   // ajax call to server method
}
<form >
<input id="Hidden1" type="hidden" runat="server" />
</form>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50810609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档