繁体   English   中英

如何将bitArray从JavaScript传递到C#

[英]How to pass bitArray from javascript to c#

我想将bitArray从我的JavaScript文件传递到webApi中的方法

我在我的javascript文件中创建如下的bitArray

 var myBits = new BitArray(2);
 myBits.setAt(1,false);
 myBits.setAt(2,true);

然后我在webApi中调用如下方法

 public int ConvertArray(BitArray a)
    {
        //some logic
    }

我使用Breeze将数据传递到webapi,所以我尝试如下传递数据

var query = EntityQuery.from("ConvertArray")
                  .withParameters({ a: myBits });
        manager1.executeQuery(query);

但是当我在webapi方法中放置断点时,我得到了空白数据。 但是,当我在传递数据时在JavaScript中放置断点时,它会获得2条记录,或者我应该说2位数组。

有人知道如何将bitArray传递给webapi吗?

更新1

这是我的位数组在代码中的样子 BitArray

一种可能性是将BitArray存储为位字符串,然后再将其发送到服务器,然后在字符串到达​​服务器端后将其转换为C#BitArray。

使用Javascript

BitArray.prototype.toString = function() {
    this.m_bits.join('');
};

使用此方法可以将[ 1, 0, 1, 0 ] 1,0,1,0]之类的数组更改为字符串1010

C#

BitArray a = new BitArray(bitString.Select(c => c == '1' ? true : false).ToArray());

Breeze在URL中发送查询参数,因此需要将它们序列化为字符串。 您的BitArray原型需要有一个toString()方法,以服务器可以理解的方式序列化这些位。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM