1

因此,在引导主题的 User.cshtml 文件中,我正在设置“注册”以导航到 CheckoutController/Signup()

 @Html.ActionLink(T("Register").Text, "Signup", new { Controller = "Checkout", Area = "UMACS.FoodPod", ReturnUrl = Request.QueryString["ReturnUrl"] })

它尝试使用 _services 创建一个形状(这是私有的只读 IOrchardServices _services;)

 [Themed]
    public ActionResult Signup()
    {
        var shape = _services.New.Checkout_Signup();
        return new ShapeResult(this, shape);
    }

但是,在尝试创建它时会引发错误:

Exception Details: Orchard.OrchardException: Shape type Checkout_Signup not found

在此处输入图像描述

我不确定这个形状的东西想要做什么。在创建注册登录之前,我使用过此代码(iv 刚刚复制到 atm 上)。过去效果很好,不知道为什么现在抛出这个错误......有什么想法吗?关于如何调试它?

4

1 回答 1

0

Orchard 正在寻找 Checkout_Signup 形状,这意味着它正在寻找名为 Checkout.Signup.cshtml 的视图。所以我假设你还没有创建这个文件。

例如,在 Orchard.Users.Controllers.AccountController 的 LogOn 函数中,它执行与var shape = _orchardServices.New.LogOn()使用 Orchard.Users.Views.LogOn.cshtml 构建形状相同的函数。然后它将这个形状传递给 ShapeResult()。然后呈现 LogOn.cshtml。

因此,在您的模块中,在 Views 文件夹中创建一个 Checkout.Signup.cshtml 文件。

至于为什么 Checkout_Signup 映射到 Checkout.Signup.cshtml,请参见http://docs.orchardproject.net/Documentation/Alternates

于 2013-08-01T12:56:39.453 回答