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

 

原文地址:https://www.cnblogs.com/JarviseZhou/p/3793681.html