c#前台获取List后用foreach循环时 提示不包含“GetEnumerator”的公共定义,因此foreach语句不能作用于..

本文介绍了作者在使用C# MVC框架时遇到的问题:在前台尝试遍历从后台传递的List类型数据时,遇到'GetEnumerator'未定义的错误。作者通过创建模型类、模拟数据并最终在Index视图中使用foreach循环成功展示了数据。文章以代码示例为主,展示了问题的解决过程。

我也是最近才开始研究c#mvc结构的  小菜鸟一名  起初看着书一点点的敲代码 都是按照例子敲 结果前台输出的都是String类型的  可是我想将后台的list类型传到前台去展示的时候总是出现 不包含“GetEnumerator”的公共定义的问题 ,这个问题困扰了好久  ,后来经过长时间的摸索终于搞清楚如何显示了,不说废话 直接上代码:

模型类:

 public  class yuangongxinxi
    {
        public string yg_id { get; set; }
        public string yg_name { get; set; }
        public int yg_sex { get; set; }
        public int yg_age { get; set; }
        public System.DateTime yg_birthday { get; set; }
        public string yg_xueli { get; set; }
        public string yg_address { get; set; }
        public string yg_jiguan { get; set; }
        public int yg_status { get; set; }
        public string yg_note { get; set; }
    }

在模型类的同一个目录下直接创建一个类:

 public class YuanGongs<T>
    {
        public IEnumerable<T> DataList { get; set; }
    }

我的数据都是通过数据库取出来的,这里我就不贴如何获取数据库的里面的代码,我们在类文件中直接添加数据:

在HomeController中

       public ActionResult Index()
        {
            List<yuangongxinxi> list = new List<yuangongxinxi> {
                new yuangongxinxi {  yg_name="zhangsan", yg_sex=1, yg_age=12, yg_address="earth", yg_jiguan="china", yg_id="1" , yg_xueli="gaozhong", yg_note="无", yg_birthday=DateTime.Now, yg_status=1},
                new yuangongxinxi {  yg_name="list", yg_sex=1, yg_age=12, yg_address="earth", yg_jiguan="china", yg_id="1" , yg_xueli="gaozhong", yg_note="无", yg_birthday=DateTime.Now, yg_status=1},
                new yuangongxinxi {  yg_name="wangwu", yg_sex=1, yg_age=12, yg_address="earth", yg_jiguan="china", yg_id="1" , yg_xueli="gaozhong", yg_note="无", yg_birthday=DateTime.Now, yg_status=1},
                new yuangongxinxi {  yg_name="zhaoliu", yg_sex=1, yg_age=12, yg_address="earth", yg_jiguan="china", yg_id="1" , yg_xueli="gaozhong", yg_note="无", yg_birthday=DateTime.Now, yg_status=1},
                new yuangongxinxi {  yg_name="tianqi", yg_sex=1, yg_age=12, yg_address="earth", yg_jiguan="china", yg_id="1" , yg_xueli="gaozhong", yg_note="无", yg_birthday=DateTime.Now, yg_status=1},
                new yuangongxinxi {  yg_name="sunba", yg_sex=1, yg_age=12, yg_address="earth", yg_jiguan="china", yg_id="1" , yg_xueli="gaozhong", yg_note="无", yg_birthday=DateTime.Now, yg_status=1}
            };
            var res = new YuanGongs<yuangongxinxi> { DataList = list };
            return View(res);
此时list已经创建好了 并且转换成了IEnumerable类型  就是下面的这个代码块
 var res = new YuanGongs<yuangongxinxi> { DataList = list };

接下来就去视图中遍历就好了,在Index上右键单击添加视图,模型设置为空,在Index.cshtml中最上面添加下列代码
@model EF_YGGL.Models.YuanGongInfo.YuanGongs<EF_YGGL.Models.YuanGongInfo.yuangongxinxi>
这句话的意思就是找YuanGongs<T>这个类所在的目录,T就是模型类所在的目录

此时准备工作就已经做好了,接下来就可以遍历我们从后台传过来的集合数据了

在Index视图中,添加如下代码:

@foreach (EF_YGGL.Models.YuanGongInfo.yuangongxinxi a in Model.DataList) {
   <div> @a.yg_id.ToString()</div><br/>
}

这样就ok了,可以直接运行项目了,就能直接显示集合数据的内容了。

这里面还有一些项目开始准备的东西我没有细讲,有什么不对的地方请大家指正,因为我也是个菜鸟



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值