博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
灵活的运用Model类
阅读量:6133 次
发布时间:2019-06-21

本文共 1951 字,大约阅读时间需要 6 分钟。

1.定义接口

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace EssentialTools.Models{    public interface IValueCalculator    {        decimal ValueProducts(IEnumerable
products); }}

2.继承接口

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace EssentialTools.Models{    public class LinqValueCalculator : IValueCalculator    {        public decimal ValueProducts(IEnumerable
products) { return products.Sum(p => p.Price); } }}

3.购物车,商品对象,计算商品总价方法

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace EssentialTools.Models{    public class ShoppingCart    {        private IValueCalculator calc;        public ShoppingCart(IValueCalculator calcParam)        {            calc = calcParam; // 引入其他类帮助        }        public IEnumerable
Products { get; set; } public decimal CalculateProductTotal() { return calc.ValueProducts(Products); } }}

4.控制器整合处理

private Product[] products = {            new Product {Name = "Kayak", Category = "Watersports", Price = 275M},            new Product {Name = "Lifejacket", Category = "Watersports", Price = 48.95M},            new Product {Name = "Soccer ball", Category = "Soccer", Price = 19.50M},            new Product {Name = "Corner flag", Category = "Soccer", Price = 34.95M}        };        public ActionResult Index()        {            IValueCalculator calc = new LinqValueCalculator();            ShoppingCart cart = new ShoppingCart(calc) { Products = products }; // 购物车中的商品            decimal totalValue = cart.CalculateProductTotal();            return View(totalValue);        }

5.页面展示

@model decimal@{    Layout = null;}    
Value
Total value is $@Model

</html>

本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6946493.html,如需转载请自行联系原作者

你可能感兴趣的文章
深入理解Python中的__builtin__和__builtins__
查看>>
YII AJAX registerScript
查看>>
ARC forbids explicit message send of 'retainCount'
查看>>
redis单机安装
查看>>
golang内存分配
查看>>
手把手教你----使用Nuget管理自己的项目库
查看>>
trubleshoting方式浅谈
查看>>
编目DB2数据库(原创)
查看>>
扩容成本直降2000万!优云伙伴山东移动精华实践分享
查看>>
企业开发中选择logback而不是log4j的理由
查看>>
程序员的量化交易之路(5)--Esper之Map事件(4)
查看>>
信息抽取的五个层次
查看>>
IOS开发--横向流水布局实现
查看>>
【DATAGUARD】手工恢复备库日志中断
查看>>
Kettle访问IDH2.3中的HBase
查看>>
jQuery网页背景灯光闪烁特效
查看>>
【转载】JVM类加载机制小结
查看>>
Android Studio(七):项目从Eclipse到Android Studio迁移
查看>>
在Solr中使用中文分词
查看>>
Eclipse之CTRL+左键直接进入方法函数Implementation
查看>>