在前端使用Orchard.Forms仅使用代码

时间:2013-06-28 16:40:54

标签: asp.net-mvc orchardcms

我正在使用代码使用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);
    }

此类代码大部分用于在管理界面中呈现字段。但是,我试图在前端渲染这个并且没有成功。

我尝试使用[Shape],但无法想出如何将其拉入其中。我还尝试创建一个.cshtml文件,但我不知道要放入哪个代码。

如何在前端渲染此表单的任何示例?我知道我可以使用自定义表单创建内容类型以使用管理员在前端呈现表单,但我尝试使用代码执行此操作。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在课程中注入IFormManager并使用Build方法构建新表单。

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

然后像这样调用Build方法:

var shape = _formManager.Build("MyLayoutBasicInformation");