我正在开发一个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;
答案 0 :(得分:2)
总结评论。由于您未更改原始string
的默认格式,因此需要使用Unicode
编码而不是UTF-8
:
string content = System.Text.Encoding.Unicode.GetString(metadatacontent.content);