自己在做ef并发访问的例子的时候遇到个问题。
实体字段里代码是这样的。
[Timestamp] public byte[] timetemp{get;set;}
一般情况下来说在页面输出。正常的是这样。
@Html.HiddenFor(e=> e.timetemp)
页面会生成这种标签。
<input id="timetemp" type="hidden" value="AAAAAAAAB9Y=" name="timetemp">
我这里不想用mvc的标签,当我写成这样之后,页面会变成下面的样子。
<input type="hidden" name="timetemp" value="@Model.timetemp" />
页面生成的html代码是这样的。
<input type="hidden" value="System.Byte[]" name="timetemp">
用什么方式可以把它变成跟mvc自带标签生成的一样?
<input type="hidden" name="timetemp" value="@System.Text.Encoding.Default.GetString(Model.timetemp)" />
还不行。会出现乱码。
@Arik lee: 那就换编码格式看看System.Text.Encoding.UTF8.GetString或者Encoding.GetEncoding("GB2312").GetString()
@咦?: 恩。试出来了。System.Convert.ToBase64String(Model.timetemp)的可以。感谢。
@(System.Text.Encoding.Default.GetString(Model.timetemp))
这个试过,也不行,它生成的标签是这个样子的。会存在乱码。
<input type="hidden" value="����� 4R" name="timetemp">
<input type="hidden" name="timetemp" value="@System.Convert.ToBase64String(Model.timetemp)" />
最后找到了,最后看生成的字符很像某一种编码后的字符,然后试了下。最后试出来是Base64的编码。然后就ok了。