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