所以在bootstrap主题的User.cshtml文件中,我正在设置' Register'使用
导航到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)。这在过去运作良好,不知道为什么这个错误现在抛出......任何想法?关于如何调试它?
答案 0 :(得分: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