Asp.net mvc 2 asp.net mvc中缺少GetEnumerator的公共定义?

Asp.net mvc 2 asp.net mvc中缺少GetEnumerator的公共定义?,asp.net-mvc-2,Asp.net Mvc 2,我应该手动创建GetEnumerator的定义吗?似乎它应该知道 我得到以下错误: foreach语句不能在上操作 类型的变量 'MVCAPP Northwind.Models.Product' 因为 “MvcAppNorthwind.Models.Product”是 不包含对的公共定义 “GetEnumerator” 在我看来,我更改了声明,如下所示: <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" I

我应该手动创建GetEnumerator的定义吗?似乎它应该知道

我得到以下错误:

foreach语句不能在上操作 类型的变量 'MVCAPP Northwind.Models.Product' 因为 “MvcAppNorthwind.Models.Product”是 不包含对的公共定义 “GetEnumerator”

在我看来,我更改了声明,如下所示:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<MvcAppNorthwind.Models.Product>>" %>

但是如果要在同一视图中显示或使用来自多个模型的数据?那你怎么做呢?

将“产品”的类型从var更改为IEnumerable
,并确保你的演员阵容反映了相同的情况

在回答上一个问题时,您可以将对象指定给ViewData中的字典项,或者更好的做法是创建一个包含视图所需所有数据的视图模型。这样,您就可以通过拥有一个特定于您的视图的模型来更好地分离关注点

  NorthwindDataContext db = new NorthwindDataContext(); 

    ViewData["Message"] = "Welcome to ASP.NET MVC!";
    var products = from p in db.Products
                   select p; 


    return View(products);
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<MvcAppNorthwind.Models.Product>>" %>