0

我想在我的测试应用程序中显示一个标签云,使用一个帮助类来创建 html。

我可以在局部视图中使用 for each 循环来访问模型中的每个项目

Inherits="System.Web.Mvc.ViewUserControl < IEnumerable < MyTestproject.Models.TagCount > >

foreach (var item in Model) {

}

但是当我尝试将模型传递给 Helper 类并使用 for each 循环时,我收到以下错误:

public static string DisplayCloud < TagCount >(TagCount objTags) {

..
       foreach (var item in objTags) {

       }
}

foreach 语句不能对“TagCount”类型的变量进行操作,因为“TagCount”不包含“GetEnumerator”的公共定义

有什么区别还是我传递错误?

4

2 回答 2

1

因为你传递的是不同的类型。

景色越来越IEnumerable<TagCount>

助手正在获取TagCount

您的帮助代码必须是:

public static string DisplayCloud(IEnumerable<TagCount> objTags) {

..
       foreach (var item in objTags) {

       }
}

该方法上的泛型类型似乎无用/非法,因为它是一个实际类型,所以我删除了它,并修复了参数类型。

于 2009-10-21T15:40:47.727 回答
1

更仔细地查看视图的类签名和辅助方法的签名之间的区别:

Inherits="System.Web.Mvc.ViewUserControl< IEnumerable <MyTestproject.Models.TagCount>>

公共静态字符串 DisplayCloud<TagCount>(TagCount objTags)

该方法需要接收一个IEnumerable<TagCount>才能调用 foreach。

于 2009-10-21T15:41:18.753 回答