C# 如何将bitArray从javascript传递到c
我想将bitArray从javascript文件传递到webApi中的方法 我在javascript文件中创建bitArray,如下所示C# 如何将bitArray从javascript传递到c,c#,javascript,asp.net-web-api,breeze,bitarray,C#,Javascript,Asp.net Web Api,Breeze,Bitarray,我想将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将
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在代码中的样子
Breeze在URL中发送查询参数,因此需要将它们序列化为字符串。您的BitArray原型需要有一个toString方法,该方法以您的服务器可以理解的方式序列化位。一种可能是在将BitArray发送到服务器之前将其存储为位字符串,然后在字符串到达服务器端后将其转换为C BitArray Javascript 使用此方法将类似[1,0,1,0]的数组更改为字符串1010 C
您的JavaScript位数组是什么?看起来像某种自定义对象…@AlexeiLevenkov我在使用自定义对象你的json看起来怎么样?@L.B我已经更新了问题这可能完全不符合要求,但可能你必须将其作为位字符串传递给web服务器,然后在收到字符串后将其转换为位数组。只是抛出一个想法…你能告诉我怎么做吗?当我使用原型时,我没有定义。toString@Happy您需要将toString定义为BitArray的函数,该函数以1和0的字符串形式返回底层数字数组。上面是一个示例,您通常会通过执行myBits.toString之类的操作来使用它。也许你可以发布BitArray的代码?我是从这篇文章中了解到BitArray的,它在我使用myBits.toString时起了作用。非常感谢。但是你能给我解释一下如何编写新的BitArraybitString.Selectc=>c=='1'吗?真:假。托雷;我不理解myBits.toString中的muchPass,将ConvertArray函数头更改为public int ConvertArraystring bitString以接受该字符串。一旦你有了这个字符串,你就可以插入上面的c代码,从这个字符串中得到一个位数组。该代码所做的是在字符串中的每个字符上循环,并创建一个新的布尔数组,其中1=>true和0=>false。然后将该数组传递给BitArray构造函数,该构造函数基于布尔数组创建新的BitArray。
BitArray.prototype.toString = function() {
this.m_bits.join('');
};
BitArray a = new BitArray(bitString.Select(c => c == '1' ? true : false).ToArray());