假设我有一个名为 ApplicationSettingsManager 的类,并且在我的 ASP .net 页面上有一个需要从 Javascript 引用的字符串,我做了以下操作:
<%=ApplicationSettingsManager.IdNumber %>
它工作正常。但是如果我需要引用 aDictionary<String,String>
怎么办?还是其他稍微复杂一点的类型?是否可以?我需要以某种方式使用序列化吗?
假设我有一个名为 ApplicationSettingsManager 的类,并且在我的 ASP .net 页面上有一个需要从 Javascript 引用的字符串,我做了以下操作:
<%=ApplicationSettingsManager.IdNumber %>
它工作正常。但是如果我需要引用 aDictionary<String,String>
怎么办?还是其他稍微复杂一点的类型?是否可以?我需要以某种方式使用序列化吗?
我需要以某种方式使用序列化吗?
是的,在将复杂类型传递给 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>
在最终标记中。
我昨天做了这个:
<%@ Import Namespace="System.Linq" %>
如果要使用默认情况下不包含的命名空间,则必须在文件开头导入它们。例如,对于在 System.Collections.Generic 命名空间中定义的 Dictionary,您必须编写:
<%@ Import Namespace="System.Collections.Generic" %>