C# 索引IEnumerable对象时ArgumentNullException

C# 索引IEnumerable对象时ArgumentNullException,c#,asp.net,.net,asp.net-mvc,entity-framework,C#,Asp.net,.net,Asp.net Mvc,Entity Framework,我正在创建ASP.NETMVC4应用程序。我有一个SocialEvents.BusinessLogic项目,其中包含类EventsHelper public class EventsHelper { IRepository repo; public EventsHelper(IRepository repository) { repo = repository; } public IEnumerable<Even

我正在创建ASP.NETMVC4应用程序。我有一个SocialEvents.BusinessLogic项目,其中包含类EventsHelper

public class EventsHelper
{
    IRepository repo;

    public EventsHelper(IRepository repository)
    {
        repo = repository;          
    }
    public IEnumerable<Event> GetEvents()
    {
        return repo.Events;
    }   
}
在索引视图中,我正在获取事件

@{ var eventsList = Model.GetEvents();}
然后尝试为它们编制索引

@if (eventsList != null)
{
    foreach (var _event in eventsList)
    {
        <h3>@_event.Title</h3>
    }                            
}
社交文脉

public class SocialEventsContext : DbContext
{
    public DbSet<Event> Events { get; set; }
}
公共类SocialEventsContext:DbContext
{
公共数据库集事件{get;set;}
}

堆栈跟踪:

[ArgumentNullException: Value cannot be null.
Parameter name: source]
   System.Linq.Enumerable.First(IEnumerable`1 source, Func`2 predicate) +4396142
   ASP._Page_Views_Home_Index_cshtml.Execute() in E:\Documents\Practice\SocialEvents\SocialEvents\Views\Home\Index.cshtml:50
   System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197
   System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +105
   System.Web.WebPages.StartPage.RunPage() +17
   System.Web.WebPages.StartPage.ExecutePageHierarchy() +64
   System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +78
   System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +235
   System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +107
   System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +291
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +13
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +56
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +420
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +52
   System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +173
   System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100
   System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
   System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +36
   System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26
   System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
   System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9744373
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
[ArgumentNullException:值不能为null。
参数名称:源]
System.Linq.Enumerable.First(IEnumerable`1源,Func`2谓词)+4396142
ASP.\u Page\u Views\u Home\u Index\u cshtml.Execute()在E:\Documents\Practice\SocialEvents\SocialEvents\Views\Home\Index.cshtml:50中
System.Web.WebPages.WebPageBase.ExecutePageHierarchy()+197
System.Web.Mvc.WebViewPage.ExecutePageHierarchy()+105
System.Web.WebPages.StartPage.RunPage()+17
System.Web.WebPages.StartPage.ExecutePageHierarchy()+64
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext-pageContext,TextWriter-writer,WebPageRenderingBase-startPage)+78
System.Web.Mvc.RazorView.RenderView(ViewContext、TextWriter、Object实例)+235
System.Web.Mvc.buildmanager compiledview.Render(ViewContext、TextWriter)+107
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext上下文)+291
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext ControllerContext,ActionResult ActionResult)+13
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1过滤器、Int32过滤器索引、ResultExecutingContext预文本、ControllerContext ControllerContext、ActionResult ActionResult)+56
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1过滤器、Int32过滤器索引、ResultExecutingContext预文本、ControllerContext ControllerContext、ActionResult ActionResult)+420
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext ControllerContext,IList`1过滤器,ActionResult ActionResult)+52
System.Web.Mvc.Async.c__显示类2B.b__1c()+173
System.Web.Mvc.Async.c__显示Class21.b__1e(IAsyncResult asyncResult)+100
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult)+10
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End()+49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)+27
System.Web.Mvc.Controller.b_u1d(IAsyncResult asyncResult,ExecuteCorerate innerState)+13
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)+29
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End()+49
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+36
System.Web.Mvc.Controller.b_u15(IAsyncResult asyncResult,Controller-Controller)+12
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)+22
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End()+49
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)+26
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult)+10
System.Web.Mvc.MvcHandler.b_uu5(IAsyncResult asyncResult,ProcessRequestState innerState)+21
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)+29
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End()+49
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)+28
System.Web.Mvc.MvcHandler.System.Web.IHTTPassynchandler.EndProcessRequest(IAsyncResult结果)+9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+9744373
System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+155

向模型类添加属性,该属性将填充控制器,然后将该模型传递给视图

型号

public class EventsHelper
    {
        IRepository repo;

        public EventsHelper(IRepository repository)
        {
            repo = repository;          
        }
        public IEnumerable<Event> GetEvents()
        {
            return repo.Events;
        }  

      public List<Event> eventList {get; set;}
    }
查看

@{ var eventsList = Model.eventList }

回购协议中有什么内容?您使用的是IEnumarable,所以这里可能有不同的执行…@OfirW我更新了我的问题您是否真的返回了IQueryable?尝试在repo调用的末尾添加ToList()。@ste-fu类似于
返回repo.Events.ToList()?是的。确保对thw db执行查询。对我不起作用。同一行的同一异常您得到了什么异常?您是否在查看页面中添加了@Model.namespace.EventsHelper?如果没有,那么它将不起作用。请将您的视图粘贴到此处,以确定实际问题。我得到的是相同的异常。是的,我确实在视图中添加了正确的模型路径
public class EventsHelper
    {
        IRepository repo;

        public EventsHelper(IRepository repository)
        {
            repo = repository;          
        }
        public IEnumerable<Event> GetEvents()
        {
            return repo.Events;
        }  

      public List<Event> eventList {get; set;}
    }
public class HomeController : Controller
{
    private static EventsHelper eventsHelper = new EventsHelper(new Repository());

    public ActionResult Index()
    {             
        eventsHelper.eventList = eventsHelper.GetEvents();
        return View(eventsHelper);
    }
}
@{ var eventsList = Model.eventList }