摘要:自定义路由系统通过前面的学习,我们能够感受到路由系统的灵活性和可配置性,如果这些不能满足我们的需求,我们可以自定义行为,下面会介绍如何自定义路由。创建一个对RouteBase类的自定义实现如果我们不喜欢标准Route对象匹配URL的方式,或者想实现一些特别的东西。我们可以从RouteBase派生一个类来替代。派生出来的类可以让我们自己控制URL的匹配,参数的提取,以及Outgoing URL的创建。派生的类需要实现下面两个方法:1.GetRouteData(HttpContextBase httpContext):实现传入的URL的匹配机制。 在每一个RouteTable.Routes进入的时 阅读全文
posted @ 2012-02-22 23:49 Rt-张雪飞 阅读(2424) 评论(13) 推荐(3) 编辑
摘要:创建传出的URL(Outgoing URLs)处理传入的URL(Incoming URLs)仅仅是路由系统的一部分功能。我们也需要使用URL架构来创建Outgoing URLs,我们可以将这些URL嵌入到我们的View里面,并且能够让用户点击URL提交表单给我们的应用程序,并能够命中合适的controller和action。下面会展示用不同的技术来创建Outgoing URLs:最便捷的创建Outgoing URLs就是手动定义如:<a href="/Home/About">About this application</a> 这样的URL。这个UR 阅读全文
posted @ 2012-02-18 15:49 Rt-张雪飞 阅读(2730) 评论(4) 推荐(6) 编辑
摘要:《Pro ASP.NET MVC 3 Framework》简介: 作者: Adam Freeman 和 Steven Sanderson 出版社: Apress; New 平装: 820页 语种: 英语 ISBN: 1430234040 声明:笔记里面按我自己的理解翻译了大部分内容,写这个笔记的目的 阅读全文
posted @ 2012-02-07 16:30 Rt-张雪飞 阅读(13663) 评论(30) 推荐(23) 编辑
摘要:整个项目范围的依赖注入(Project-Wide Dependency Injection)在书接下来的章节里面,我们会看到MVC框架提供的很多不同的方式来让我们扩展和自定义对请求的处理,每一种方式都会用一个实现的接口或一个派生的基类来定义。在第一部分的SportsStore项目实例里面已经有过引入。我们从DefaultControllerFactory类派生了一个NinjectControllerFactory类,以至于我们能够创建Controller,并使用Ninject来管理DI(依赖注入)。如果使用这种方法针对MVC里面每一个自定义的点,最终会让我们将DI贯彻到整个应用程序,但是这样会 阅读全文
posted @ 2012-02-06 23:52 Rt-张雪飞 阅读(3750) 评论(6) 推荐(12) 编辑
摘要:上一篇关于mono的是将一个小的系统移植体验,这次折腾了4天把这个小的系统部署到线上(国外的vps)。vps上安装了Ubuntu10.04的服务器版本,意味着是非常纯净的。而我又想都用最新版的环境,所以几乎全部编译安装mono2.10.8 Nginx1.0.11 MySQL5.5.20.现在把折腾的... 阅读全文
posted @ 2012-01-19 14:28 Rt-张雪飞 阅读(2621) 评论(7) 推荐(3) 编辑
摘要:接下来是关于SportsStore的后台管理功能,也就是通常的CRUD操作。首先添加一个AdminController,代码如下:View Code using System.Web.Mvc; using SportsStore.Domain.Abstract; namespace SportsStore.WebUI.Controllers { public class AdminController : Controller { private IProductRepository repository; public AdminControll... 阅读全文
posted @ 2012-01-14 17:30 Rt-张雪飞 阅读(2622) 评论(6) 推荐(4) 编辑
摘要:提交订单:这是SportsStore项目的最后一个功能了,结算并完成我们的订单。在Entities文件夹里添加一个ShippingDetails.cs,代码如下:View Code public class ShippingDetails { [Required(ErrorMessage = "Please enter a name")] public string Name { get; set; } [Required(ErrorMessage = "Please enter the first address line")] ... 阅读全文
posted @ 2012-01-12 00:21 Rt-张雪飞 阅读(2393) 评论(2) 推荐(5) 编辑
摘要:导出excel是再常见不过的功能,其中NPOI是我一直使用的导出excel的框架。你可以猛击这里了解NPOI,最近有这样一个需求,当我想一次性导出多个excel文件时。我想在内存里面压缩后输出到浏览器进行下载。由此接触到了另外一个框架SharpZipLib,猛击这里了解。demo的代码贴在这里,以备... 阅读全文
posted @ 2012-01-10 21:37 Rt-张雪飞 阅读(2626) 评论(0) 推荐(2) 编辑
摘要:绑定Shopping Cart定义购物车Cart的实体,购物车是我们程序业务领域的一个部分,所以在我们领域模型(Domain Model)里面添加一个cart的实体是合理的。在SportsStore.Domain的Entities文件夹下添加一个Cart的实体类,如下所示:View Code public class Cart { private List<CartLine> lineCollection = new List<CartLine>(); //添加 public void AddItem(Product product, i... 阅读全文
posted @ 2012-01-10 21:08 Rt-张雪飞 阅读(2874) 评论(4) 推荐(5) 编辑
摘要:前面给SportsStore添加了分页的功能。接着我们添加导航控制,通过左边的菜单来分类显示数据。首先修改SportsStore.WebUI.Models下的ProductsListViewModel.cs,增加一个CurrentCategory属性public string CurrentCategory{get;set;}。接着修改List action方法,能够通过传入的CurrentCategory来过滤查询的产品列表。修改后的List action方法如下所示:public ViewResult List(string category, int page = 1) { Prod.. 阅读全文
posted @ 2012-01-08 22:48 Rt-张雪飞 阅读(3147) 评论(4) 推荐(5) 编辑