可以从ASP .net访问哪些C#类型?

时间:2012-01-27 09:14:25

标签: c# javascript asp.net types inline-code

假设我有一个名为ApplicationSettingsManager的类,我有一个需要在我的ASP .net页面上从Javascript引用的String,我已经完成了以下操作:

<%=ApplicationSettingsManager.IdNumber %>

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

3 个答案:

答案 0 :(得分:6)

  

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

是的,建议在将复杂类型传递给j​​avascript时使用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" %>