如何使用ViewModel在MVC4应用程序中实现IEnumerator

欧文(Erwin Rooijakkers)

我通过遵循本教程,试图在MVC4项目的一个视图中返回两个模型我有一个名为Product的模型,看起来像这样:

public class Product : IEnumerable<ShoppingCartViewModel>, 
                           IList<ShoppingCartViewModel>
    {
        public int ProductId { get; set; }
        public string Name { get; set; }
        public decimal Price { get; set; }
        (...)
    }

还有一个ViewModel,其中包含ShoppingCarts(列表)列表,如下所示:

public class ShoppingCartViewModel : IEnumerable<Product>, IList<Product>
    {
        public List<Cart> CartItems { get; set; }
        public decimal CartTotal { get; set; }
    }

我有一个执行以下任务的“包装模型”:

public class ProductAndCartWrapperModel
    {
        public Product product;
        public ShoppingCartViewModel shoppingCart;

        public ProductAndCartWrapperModel()
        {
            product = new Product();
            shoppingCart = new ShoppingCartViewModel();
        }
}

然后,我尝试以这种方式简单地显示两个模型的视图

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<projectname.ProductAndCartWrapperModel>" %>
(...)
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <div>
        <% foreach (projectname.Models.Product p in
                                     ViewData.Model.product) { %>
        <div>
            <div id="ProductName"><%: p.Name %></div>
            <div id="ProductPrice"><%: p.Price %></div>
        </div>
        <% } %>
    </div>
    <div>
        <% foreach (projectname.ViewModels.ShoppingCartViewModel sc in 
                   ViewData.Model.shoppingCart) { %>
        <div>
            <div id="Div1"><%: sc.CartItems %></div>
            <div id="Div2"><%: sc.CartTotal %></div>
        </div>
        <% } %>
    </div>

</asp:Content>

不幸的是,在尝试构建时出现一个错误

Cannot convert type 'projectname.Models.Product' to
'projectname.ViewModels.ShoppingCartViewModel'

后跟两个模型的错误列表:

does not implement interface member 
'System.Collections.Generic.IEnumerable<projectname.ViewModels.ShoppingCartViewModel>.
 GetEn umerator()'. 'projectname.Models.Product.GetEnumerator()' cannot implement  
'System.Collections.Generic.IEnumerable<projectname.ViewModels.ShoppingCartViewModel>.
 GetEnumerator()' because it does not have the matching return type of 
'System.Collections.Generic.IEnumerator<projectname.ViewModels.ShoppingCartViewModel>'.

我感觉我很接近在一页上显示两个模型,但是我不知道如何实现IEnumerator并获取匹配的类型。我试图添加一个这样的:

public IEnumerator<Object> GetEnumerator()
    {
        return this.GetEnumerator();
    }

但这无济于事。

如果有人可以解释如何正确实现接口成员并获得构建解决方案(如果可能的话),我将不胜感激。

雷达·马塔(Reda Mattar)

Product从继承时IEnumerable<ShoppingCartViewModel>,意味着迭代Product将给出ShoppingCartViewModel元素。

<% foreach (Product p in ViewData.Model.product) { %>

应该 :

<% foreach (ShoppingCartViewModel p in ViewData.Model.product) { %>

但是您的设计很奇怪,也许您做得过头了?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MVC4应用程序-如何删除实体框架并实现SimpleMembershipProvider?

来自分类Dev

MVC4应用程序中的XML文档错误

来自分类Dev

MVC4应用程序中的Outputcache

来自分类Dev

如何在RedHat OS中运行asp.net MVC4 Web应用程序

来自分类Dev

使用Watin进行UI测试时如何模拟MVC4应用程序?

来自分类Dev

如何在MVC 4应用程序中使用会员资格提供程序实现登录?

来自分类Dev

How to implement IEnumerator in MVC4 application with ViewModel

来自分类Dev

如何设置IIS6以承载ASP .NET 4 MVC4应用程序

来自分类Dev

使用ViewModel和ActionLink时无法在MVC4中应用分页

来自分类Dev

将stimulsoft集成到MVC4应用程序

来自分类Dev

如何重写Browser.IsMobileDevice是ASP.NET MVC4应用程序?

来自分类Dev

如何分析MVC4应用程序,向网站发送多个获取请求以进行测试

来自分类Dev

我如何加快我的MVC4应用程序开发?

来自分类Dev

如何分析MVC4应用程序,向网站发送多个获取请求以进行测试

来自分类Dev

我的jQuery没有在我的mvc4应用程序中调用此按钮控件?

来自分类Dev

在ASP.NET MVC4应用程序中重新连接到Servicestack会话

来自分类Dev

HttpGet的查询字符串在多会话MVC4应用程序中消失了

来自分类Dev

在ASP.NET MVC4应用程序中向HtmlHelper添加扩展方法

来自分类Dev

我的jQuery没有在我的mvc4应用程序中调用此按钮控件?

来自分类Dev

使用TypeScript 0.9.1.1将TypeScript文件添加到MVC4应用程序

来自分类Dev

使用mvc4将图像显示为移动应用程序的幻灯片

来自分类Dev

在Asp.net mvc4应用程序中使用验证消息

来自分类Dev

重复使用MVC4 Controller从桌面应用程序发布数据

来自分类Dev

MSBuild编译ASP.NET MVC4应用程序-使用Visual Studio 2015设计

来自分类Dev

如何在MVC4中初始化ViewModel

来自分类Dev

如何在带有实体框架4.0的MVC4中使用ViewModel模拟方法

来自分类Dev

如何在带有实体框架4.0的MVC4中使用ViewModel模拟方法

来自分类Dev

如何解决 MVC 4 应用程序中的 CultureNotFoundException?

来自分类Dev

在本地主机mvc4中发布应用程序后,是否无法使用弹出窗口将数据保存在db中?

Related 相关文章

  1. 1

    MVC4应用程序-如何删除实体框架并实现SimpleMembershipProvider?

  2. 2

    MVC4应用程序中的XML文档错误

  3. 3

    MVC4应用程序中的Outputcache

  4. 4

    如何在RedHat OS中运行asp.net MVC4 Web应用程序

  5. 5

    使用Watin进行UI测试时如何模拟MVC4应用程序?

  6. 6

    如何在MVC 4应用程序中使用会员资格提供程序实现登录?

  7. 7

    How to implement IEnumerator in MVC4 application with ViewModel

  8. 8

    如何设置IIS6以承载ASP .NET 4 MVC4应用程序

  9. 9

    使用ViewModel和ActionLink时无法在MVC4中应用分页

  10. 10

    将stimulsoft集成到MVC4应用程序

  11. 11

    如何重写Browser.IsMobileDevice是ASP.NET MVC4应用程序?

  12. 12

    如何分析MVC4应用程序,向网站发送多个获取请求以进行测试

  13. 13

    我如何加快我的MVC4应用程序开发?

  14. 14

    如何分析MVC4应用程序,向网站发送多个获取请求以进行测试

  15. 15

    我的jQuery没有在我的mvc4应用程序中调用此按钮控件?

  16. 16

    在ASP.NET MVC4应用程序中重新连接到Servicestack会话

  17. 17

    HttpGet的查询字符串在多会话MVC4应用程序中消失了

  18. 18

    在ASP.NET MVC4应用程序中向HtmlHelper添加扩展方法

  19. 19

    我的jQuery没有在我的mvc4应用程序中调用此按钮控件?

  20. 20

    使用TypeScript 0.9.1.1将TypeScript文件添加到MVC4应用程序

  21. 21

    使用mvc4将图像显示为移动应用程序的幻灯片

  22. 22

    在Asp.net mvc4应用程序中使用验证消息

  23. 23

    重复使用MVC4 Controller从桌面应用程序发布数据

  24. 24

    MSBuild编译ASP.NET MVC4应用程序-使用Visual Studio 2015设计

  25. 25

    如何在MVC4中初始化ViewModel

  26. 26

    如何在带有实体框架4.0的MVC4中使用ViewModel模拟方法

  27. 27

    如何在带有实体框架4.0的MVC4中使用ViewModel模拟方法

  28. 28

    如何解决 MVC 4 应用程序中的 CultureNotFoundException?

  29. 29

    在本地主机mvc4中发布应用程序后,是否无法使用弹出窗口将数据保存在db中?

热门标签

归档