3

假设我有一个名为 ApplicationSettingsManager 的类,并且在我的 ASP .net 页面上有一个需要从 Javascript 引用的字符串,我做了以下操作:

<%=ApplicationSettingsManager.IdNumber %>

它工作正常。但是如果我需要引用 aDictionary<String,String>怎么办?还是其他稍微复杂一点的类型?是否可以?我需要以某种方式使用序列化吗?

4

3 回答 3

6

我需要以某种方式使用序列化吗?

是的,在将复杂类型传递给 javascript 时,建议使用 JSON 序列化。例如,您可以使用JavaScriptSerializer类:

<script type="text/javascript">
    var value = <%= new JavaScriptSerializer().Serialize(AnyComplexObjectYouLike) %>;
</script>

示例Dictionary<string, string>

<script type="text/javascript">
    var value = <%= new JavaScriptSerializer().Serialize(new Dictionary<string, string> { { "key1", "value1" }, { "key2", "value2" } }) %>;
    alert(value.key1);
</script>

这将呈现为:

<script type="text/javascript">
    var value = {"key1":"value1","key2":"value2"};
    alert(value.key1);
</script>

在最终标记中。

于 2012-01-27T09:17:59.590 回答
0

我昨天做了这个:

<%@ Import Namespace="System.Linq" %>
于 2012-01-27T09:16:55.723 回答
0

如果要使用默认情况下不包含的命名空间,则必须在文件开头导入它们。例如,对于在 System.Collections.Generic 命名空间中定义的 Dictionary,您必须编写:

<%@ Import Namespace="System.Collections.Generic" %> 
于 2012-01-27T09:46:24.050 回答