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 に答える