从foreach循环中获取IEnumerable Model中的数据

时间:2014-03-08 01:25:58

标签: c# asp.net-mvc-4

需要初学者帮助!!
我有理由从多个基于数据库的模型中提取一组数据。这很成功,我可以看到模型中的数据。我可以遍历foreach(没有内部代码)观察数据通过它,但我仍然不确定如何从模型中获取数据以对其进行操作(需要在特定的位置发布)通往另一张桌子的方式)。

控制器

public ActionResult BuildEmptyEventClassComp()

       {
           var alllist = (from o in _db.Events
                          join o2 in _db.Event_Classes on o.EventID equals o2.EventID
                          where o.EventID.Equals(o2.EventID)
                          join o3 in _db.Class_Definitions on o2.ClassID equals o3.Class_Definition_ID
                          where o2.ClassID.Equals(o3.Class_Definition_ID)
                          where o.CurrentEvent.Equals(true)

                          select new EventClassCompListVM { EventName = o.EventName, EventDate = o.Date_Start, ClassName = o3.Class_Name, ClassOrder = o2.ClassOrder, MaxComp = o2.MaxComp, ClassID = o2.ClassID, EventID = o.EventID }).AsEnumerable();


           foreach (var emptylist in alllist)
           {
              **emptylist.EventID = alllist.EventID;**  //EventID cannot be found to populate

           }

           return RedirectToAction("../EventClass/ListEventClasses");
       }

ViewModel(尝试了多种方式来改变这种情况......但是数据仍然在模型中,正如我所期望的那样......只是无法解决它!)

using System.Web;

namespace eManager.Web2.Models
{
    public class EventClassCompListVM{
        public int ECCLkey { get; set; }
        public int CompeditorId { get; set; }
        public int Comp_EventID { get; set; }
        public DateTime EventDate { get; set; }
        public int EventID { get; set; }
        public int ClassID { get; set; }
        public string CompName { get; set; }
        public string EventName { get; set; }
        public string CompMetricName { get; set; }
        public double CompMetric { get; set; }
        public int MaxComp { get; set; }
        public string ClassName { get; set; }
        public int ClassOrder { get; set; }
    }
}

1 个答案:

答案 0 :(得分:1)

根据您的代码,alllist的类型为IEnumerable<EventClassCompListVM>emptylist循环中的foreach类型为EventClassCompListVM,因此无法进行分配emptylist.EventID = alllist.EventID;可以有效。

你实际上最想做的事情是:var myEmptyListEventId = emptylist.EventID;