我想将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存储为位字符串,然后再将其发送到服务器,然后在字符串到达​​服务器端后将其转换为C#BitArray。

Java脚本

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


使用此方法可以使像[ 1, 0, 1, 0 ]这样的数组更改为字符串1010

C#

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

关于c# - 如何将bitArray从JavaScript传递到C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25650091/

10-11 18:03