首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用函数将QR结果发送到codebehind方法

使用函数将QR结果发送到codebehind方法
EN

Stack Overflow用户
提问于 2020-03-11 02:33:51
回答 1查看 256关注 0票数 1

我使用这个代码作为引用,当我得到QR y的结果时,把它发送给一个变量,我试着去做,但是没有得到结果,当我想在https://www.itsolutionstuff.com/post/jquery-html5-qr-code-scanner-using-instascan-js-exampleexample.html中发送一个函数时,我从来没有得到过响应结果。

代码语言:javascript
复制
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <script src="../Scripts/jquery-3.3.1.min.js"></script>
    <script src="assets/js/instascan.min.js"></script>
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <div class="row">
        <div class="col-md-6">
            <div class="form-group row">
                <video id="preview" class="col-lg-12"></video>
                <script type="text/javascript">
                    let scanner = new Instascan.Scanner({ video: document.getElementById('preview') });
                    scanner.addListener('scan', function (content) {
                        var test = content.toString(); //here i get the variable
                        alert(test);
                        <%=SendToDB(content)%>;
                    });
                    Instascan.Camera.getCameras().then(function (cameras) {
                        if (cameras.length > 0) {
                            scanner.start(cameras[0]);
                        } else {
                            console.error('There is no camera');
                        }
                    }).catch(function (e) {
                        console.error(e);
                    });
                </script>
            </div>
        </div>
    </div>
</asp:Content>

现在在代码背后,我有类似这样的东西

代码语言:javascript
复制
public void SendToDB(string content)
{
   string variable = content;
   //here I send it to the database
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-10 06:13:50

我知道这是一个古老的问题,但我也在为这个问题而苦苦挣扎,所以我想给其他人一个答案。尝试将您的html代码更改为:

代码语言:javascript
复制
            <script type="text/javascript">
                let scanner = new Instascan.Scanner({ video: document.getElementById('preview') });
                scanner.addListener('scan', function (content) {
                    var test = content.toString(); //here i get the variable
                    alert(test);
                    var options = {};
                    options.url = "Default.aspx/SendToDB";
                    options.type = "POST";
                    options.data = JSON.stringify({ content });
                    options.dataType = "json";
                    options.contentType = "application/json";
                    options.success = function (result) { };
                    options.error = function (err) { };

                    $.ajax(options);
                });
                Instascan.Camera.getCameras().then(function (cameras) {
                    if (cameras.length > 0) {
                        scanner.start(cameras[0]);
                    } else {
                        console.error('There is no camera');
                    }
                }).catch(function (e) {
                    console.error(e);
                });
            </script>

这里重要的是"options.url = "Default.aspx/SendToDB";“。如果页面的名称不是Default.aspx,则需要将其更改为正确的页面名称。

现在,在C#代码中,您需要将WebMethod添加到函数之上:

代码语言:javascript
复制
[WebMethod]
public void SendToDB(string content)
{
   string variable = content;
   //here I send it to the database
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60623898

复制
相关文章

相似问题

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