2013-06-28 27 views
2

我正在使用代碼使用Orchard.Forms創建表單。這是我的代碼:僅使用代碼在前端使用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

您可以在您的班級中注入IFormManager並使用它的Build方法構建新表單。

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

,然後調用Build方法是這樣的:

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

真棒。我有一個後續問題(也許更多的要點)。看到[我的問題在這裏](http://stackoverflow.com/questions/17372182/how-can-i-insert-the-save-button-using-orchard-forms) – REMESQ

+0

很高興我可以幫助。感謝您的支持.i將需要一些額外的分鐘來回應下一個問題。 –

+0

沒問題 - 你在幫我一個忙:) – REMESQ