[英]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存储为位字符串,然后再将其发送到服务器,然后在字符串到达服务器端后将其转换为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.