为什么ViewBag中的textBox值已损坏?

时间:2014-05-01 12:10:59

标签: c# asp.net asp.net-mvc razor asp.net-mvc-5

我正在开发一个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 i l e (在文本框内)

为什么字符串在textBox内被破坏? 我将不胜感激任何帮助。

感谢。

编辑:这里我将文本从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;

1 个答案:

答案 0 :(得分:2)

总结评论。由于您未更改原始string的默认格式,因此需要使用Unicode编码而不是UTF-8

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