我有一个字节数组。我需要将它分配给隐藏的字段并检索结果。如何实现这一目标?
我试过
var data =(byte[])hiddenField.value ;
但它给出了错误
无法将字符串转换为bytearray。
答案 0 :(得分:6)
您需要将其作为字符串存储在隐藏字段中,以便执行以下操作:
hiddenField.Value = Convert.ToBase64String(data);
然后将其转换回来:
byte[] data = Convert.FromBase64String(hiddenField.Value);
如果您也可以提供数据示例,那将会更加彻底。
答案 1 :(得分:2)
试试这个:
获取此字节:
byte[] bytes = System.Text.ASCIIEncoding.ASCII.GetBytes(hiddenField.Value);
再次获取字符串:
string s = System.Text.ASCIIEncoding.ASCII.GetString(bytes);
答案 2 :(得分:0)
我正在使用这种方法:
<强> 1。在JavaScript中
添加一个javascript函数将字节数组(0..127)转换为字符串:
function byteArrayToString(byteArray) {
var str = "";
for (var i = 0; i < byteArray.length; i++) {
str += byteArray[i] + ',';
}
str = str.slice(0, -1);
return str;
}
function getDataFromJavascript()
{
var somebinarydata = [18,122,96];
return byteArrayToString(somebinarydata);
}
通过调用javascript函数设置隐藏字段值:
$('#<%= HiddenField1.ClientID %>').val(getDataFromJavascript());
<强> 2。在C#
获取字符串的隐藏字段值,创建一个字符串数组并将其转换为字节数组:
byte[] byteArray = HiddenField1.Value.Split(',').Select(byte.Parse).ToArray();
答案 3 :(得分:0)
您实际上可以按原样存储它,但是不能将其存储在一个字段中。您必须执行如下循环:
if (Model.YourByteArray != null)
{
foreach (var item in Model.YourByteArray)
{
<input type="hidden" name="YourByteArray" value="@item">
}
}
表单会将其发布到字节数组参数中。