将绑定字典转换为转发器asp.net

时间:2014-02-27 06:42:29

标签: c# asp.net dictionary casting repeater

我正在尝试使用转发器填充<li>项,并将其绑定到Dictionary对象。我有一个名为cart的字典,带有标准Key,Value属性。

我收到运行时错误:

`System.InvalidCastException: Specified cast is not valid.`

我使用了这段代码:

<ItemTemplate>
<li id="<%# ((KeyValuePair<string,string>)Container.DataItem).Key %>_i" >
<%# ((KeyValuePair<string,string>)Container.DataItem).Key %> <%# ((KeyValuePair<string,string>)Container.DataItem).Value %>
</li></ItemTemplate>

这里有什么问题?

2 个答案:

答案 0 :(得分:1)

绑定到Dictionary<string, string>时,您的ItemTemplate适合我。因此,我建议检查Repeater是否真的绑定到Dictionary<string, string>

如果没有,则异常是有意义的,可以通过修复数据绑定代码(或更改ItemTemplate中使用的类型以使其与绑定到Repeater的数据匹配来解决。

答案 1 :(得分:0)

如果您的词典不是Dictionary<string, string>,您可以执行类似

的操作
((System.Collections.Generic.KeyValuePair<string,byte[]>)(Container.DataItem)).Key

((System.Collections.Generic.KeyValuePair<clsProduct,int>)(Container.DataItem)).Key.ProductCode