首页 > 代码库 > Orchard part8

Orchard part8

http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-8

定义内容类型 Customer

  1.创建CustomerPartRecord

  2.创建CustomerPart

 

  创建AddressPart

  3.创建AddressPartRecord

  4.创建AddressPart

 

  5.通过Migrations类中创建表CustomerPartRecord、AddressPartRecord添加默认字段

 

  当你创建一个新的内容类型,UserPart,不要附加CommonPart。否则会导致          StackOverflowException当你登录新用户类型。这是因为每当果园新闻内容项,它调用所    有内容处理程序,包括CommonPartHandler。CommonPartHandler将尝试分配当      前loggedin用户,但在这样做,它会加载该用户。加载,用户会再次调用            CommonPartHandler,进而将调用AuthenticationService当前用户,等等。

 

  6.创建CustomerHandler、AddressHandler(Handler的功能作用?数据驱动)

  7.创建 CustomerPartDriver、AddressPartDriver(Driver的功能作用?创建形状)

  8.创建编辑呈现模版Customer.cshtmlAddress.cshtml

  9.向Placement.info中添加位置信息

  

创建用户自己注册/登录 功能描述:首先询问客户是否已经拥有帐号,或者想重新创建个新的帐号,所以我们创建一个控制器CheckoutController 并添加action SignupOrLogin 

  1.创建CheckoutController,添加名称为SignupOrLogin的action 

  我们返回一个新的ShapeResult保存一个形状称为Checkout_SignupOrLogin(请注意,我们使用IOrchardServices的新属性;它只是一个IShapeFactory)让我们为它创建一个模板视图文件夹:   

using System.Web.Mvc;using Orchard;using Orchard.Localization;using Orchard.Mvc;using Orchard.Themes; namespace Skywalker.Webshop.Controllers{    public class CheckoutController : Controller    {        private readonly IOrchardServices _services;        private Localizer T { get; set; }         public CheckoutController(IOrchardServices services)        {            _services = services;        }         [Themed]        public ActionResult SignupOrLogin() {             return new ShapeResult(this, _services.New.Checkout_SignupOrLogin());        }    }}
View Code

 

  

The Signup screen