2

我正在使用代码使用 Orchard.Forms 创建表单。这是我的代码:

public void Describe(DescribeContext context) {
        Func<IShapeFactory, object> form =
            shape => {

                var f = Shape.Form(
                    Id: "MyLayoutBasicInformation",
                    _BasicInformation: Shape.Fieldset(
                        Title: T("Basic Information"),

                        _FirstName: Shape.TextBox(
                            Id: "FirstName", Name: "First Name",
                            Title: T("First Name"),
                            Description: T("The name for this field")
                            )
                        )
                    );
                return f;
            };
        context.Form("MyLayoutBasicInformation", form);
    }

大多数此类代码用于在管理 UI 中呈现字段。但是,我试图在前端渲染它并且没有成功。

我尝试使用[Shape]但不知道如何将其拉入其中。我也尝试创建一个.cshtml文件,但我也不知道要放入什么代码。

有关如何在前端呈现此表单的任何示例?我知道我可以使用自定义表单来创建一个内容类型来使用管理员在前端呈现一个表单,但我正在尝试用代码来做到这一点。

先感谢您。

4

1 回答 1

1

您可以注入IFormManager您的类并使用它的Build方法来构建一个新表单。

        private readonly IFormManager _formManager;
        public YourClass(IFormManager formManager)
        {
             _formManager = formManager;
        }

然后Build像这样调用方法:

var shape = _formManager.Build("MyLayoutBasicInformation");
于 2013-06-28T18:18:52.580 回答