【发布时间】:2014-05-01 12:10:58
【问题描述】:
我正在使用新的 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”(在文本框内)
为什么文本框内的字符串被破坏了? 我将不胜感激。
谢谢。
编辑:这里我将文本从 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;
【问题讨论】:
-
metadatacontent.content是什么?是 UTF-8 格式吗? -
实际上,当我将字符串转换为 byte[] 时,我没有设置任何编码。从 byte[] 转换回字符串时,我也尝试使用 System.Text.Encoding.Default.GetString 但结果相同
-
你是怎么把它转换成
byte[]的? -
我已经用我转换为 byte[] 的部分编辑了问题。首先在创建部分中,我从 View 中获取文本并将其存储。现在我想编辑这些数据。我也未能在视图中将字节 [] 转换为字符串,因此我在控制器中将其转换并与 ViewBag 一起传递。
-
你试过
System.Text.Encoding.Unicode.GetString(...)吗?
标签: c# asp.net asp.net-mvc razor asp.net-mvc-5