如何在不转换为json的情况下将C#数组用于javascript数组?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在不转换为json的情况下将C#数组用于javascript数组?相关的知识,希望对你有一定的参考价值。
我有一个C#数组,其中包含C#模型列表:
public class AlertInfo
{
public long Id { get; set; }
public string Message { get; set; }
}
我将C#的数组转换为json并在javascript中使用,如下所示:
JavaScriptSerializer _serializer = new JavaScriptSerializer();
string result = _serializer.Serialize(myList);
在javascript中:
jQuery.parseJSON('<%= result %>')
当Message
在jQuery.parseJSON方法中包含双引号时抛出异常(例如Message是
你好,世界”
)
有没有办法处理这个错误或以另一种方式将C#数组传递给javascript数组?
答案
您可以使用htmlEncode函数。
示例代码:
string text = "you & me > them"; // 1
// Replace > with >
string htmlEncoded =Server.HtmlEncode(text); // 2
// Now has the > again.
string original =Server.HtmlDecode(htmlEncoded); // 3
输出:
Step 1: Before encoding has occurred.
String: you & me > them
Step 2: The string is encoded for HTML.
String: you & me > them
Step 3: String is converted back from HTML.
String: you & me > them
或者您可以在JavaScript端使用此方法。
另一答案
代替
jQuery.parseJSON('<%= result %>')
试试吧
<%= result %>
例如它可能是像var myVariable = <%= result %>
这样的声明的一部分
由于序列化器已经生成了JSON,而JSON是JavaScript Object Notation,因此当它是JavaScript语句的一部分时,它可以直接解释为JavaScript变量。这意味着您应该能够直接将其注入JavaScript代码中。它已经是JSON了,所以不需要解析它(好像它是一个字符串)。
以上是关于如何在不转换为json的情况下将C#数组用于javascript数组?的主要内容,如果未能解决你的问题,请参考以下文章