加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-2 – asp.net mvc中GetEnumerator的公共定义缺失?

发布时间:2020-12-16 07:02:36 所属栏目:asp.Net 来源:网络整理
导读:我应该手动为GetEnumerator创建一个定义吗?好像它应该知道…… 我收到以下错误: foreach statement cannot operate on variables of type ‘MvcAppNorthwind.Models.Product’ because ‘MvcAppNorthwind.Models.Product’ does not contain a public defi
我应该手动为GetEnumerator创建一个定义吗?好像它应该知道……

我收到以下错误:

foreach statement cannot operate on
variables of type
‘MvcAppNorthwind.Models.Product’
because
‘MvcAppNorthwind.Models.Product’ does
not contain a public definition for
‘GetEnumerator’

Line 9:      <h2><%: ViewData["Message"] %></h2>
Line 10:     <ul>
Line 11:     <% foreach (MvcAppNorthwind.Models.Product p in ViewData.Model)  {   %>
Line 12:     <li><%= p.ProductName %></li>
Line 13:     <% } %>

在我的控制器中,我有这个代码:

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>>" %>

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

解决方法

将“products”的类型从var更改为IEnumerable< MvcAppNorthwind.Models.Product>并确保你的演员反映相同.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读