快速业务通道

Asp.net MVC示例项目“Suteki.Shop”分析之ViewData

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
public Postage Postage { get; set; }
public IEnumerable<Postage> Postages { get; set; }

public PostageResult PostageResult { get; set; }

public Card Card { get; set; }

public IEnumerable<StockItem> StockItems { get; set; }

public IEnumerable<Content> Contents { get; set; }

public IEnumerable<OrderStatus> OrderStatuses { get; set; }

// attempt at a fluent interface

public ShopViewData WithCategory(Category category)
{
this.Category = category;
return this;
}

public ShopViewData WithCategories(IEnumerable<Category> categories)
{
this.Categories = categories;
return this;
}

public ShopViewData WithProduct(Product product)
{
this.Product = product;
return this;
}

public ShopViewData WithProducts(IEnumerable<Product> products)
{
this.Products = products;
return this;
}

public ShopViewData WithRoles (IEnumerable<Role> roles)
{
this.Roles = roles;
return this;
}

public ShopViewData WithUser(User user)
{
this.User = user;
return this;
}

public ShopViewData WithUsers(IEnumerable<User> users)
{
this.Users = users;
return this;
}

public ShopViewData WithBasket(Basket basket)
{
this.Basket = basket;
return this;
}

public ShopViewData WithOrders(PagedList<Order> orders)
{
this.Orders = orders;
return this;
}

public ShopViewData WithOrder (Order order)
{
this.Order = order;
return this;
}

public ShopViewData WithOrderSearchCriteria(OrderSearchCriteria orderSearchCriteria)
{
this.OrderSearchCriteria = orderSearchCriteria;
return this;
}

public ShopViewData WithCountries(IEnumerable<Country> countries)
{
this.Countries = countries;
return this;
}

public ShopViewData WithCountry(Country country)
{
this.Country = country;
return this;
}

public ShopViewData WithCardTypes(IEnumerable<CardType> cardTypes)
{
this.CardTypes = cardTypes;
return this;
}

public ShopViewData WithPostage(Postage postage)
{
this.Postage = postage;
return this;
}

public ShopViewData WithPostages(IEnumerable<Postage> postages)
{
this.Postages = postages;
return this;
}

public ShopViewData WithTotalPostage(PostageResult postageResult)
{
this.PostageResult = postageResult;
return this;
}

public ShopViewData WithCard(Card card)
{
this.Card = card;
return this;
}

public ShopViewData WithStockItems(IEnumerable<StockItem> stockItems)
{
this.StockItems = stockItems;
return this;
}

public ShopViewData WithContents (IEnumerable<Content> contents)
{
this.Contents = contents;
return this;
}

public ShopViewData WithOrderStatuses (IEnumerable<OrderStatus> orderStatuses)
{
this.OrderStatuses = orderStatuses;
return this;
}
}

为了便于使用,Suteki.Shop还以静态属性的方式进行了封闭,最终以ShopView这个类开放出来提供给Action和View使用,其实现代码如下 :

/// <summary>
/// So you can write
/// ShopView.Data.WithProducts(myProducts);
/// </summary>
public class ShopView
{
public static ShopViewData Data { get { return new ShopViewData(); } }
}

下面以“编辑用户”这个Action来看

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号