为什么ViewBag中的textBox值已损坏

本文关键字:已损坏 textBox 中的 ViewBag 为什么 | 更新日期: 2023-09-27 18:01:12

我正在用asp.net MVC 5做一个项目,我是新来的。在某个时刻,我从字节数组中检索一个字符串,并将其传递给ViewBag 查看

string content = System.Text.Encoding.UTF8.GetString(metadatacontent.content);
ViewBag.content = content;

我想在视图中编辑此字段。

@ViewBag.content // this line for checking
@Html.TextBox("metaData", (String)ViewBag.content)

我在网页上看到的是:日志文件(来自@ViewBag.content(l�o�g� �f�我�l�e�(文本框内(

为什么文本框中的字符串断开?如果有任何帮助,我将不胜感激。

谢谢。

编辑:在这里,我将View中的文本转换为byte[],并使用模型进行存储。

byte[] bytes = new byte[Request["metaData"].ToString().Length * sizeof(char)];
System.Buffer.BlockCopy(Request["metaData"].ToString().ToCharArray(), 0, bytes, 0, bytes.Length);
metadatacontent.content = bytes;

为什么ViewBag中的textBox值已损坏

总结评论。因为您没有更改原始string的默认格式,所以需要使用Unicode编码而不是UTF-8:

string content = System.Text.Encoding.Unicode.GetString(metadatacontent.content);