如何使用Orchard.Forms插入保存按钮?

我的初步问题的后续行动:

如果我在代码中创建一个表单:

public void Describe(DescribeContext context) { Func 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); } 

并将其注入前端视图(如提供的答案):

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

我的显示屏只显示字段名字。 但没有按钮可以将其保存到数据库中。 有关如何实现这一点的任何想法?

更新:我正在使用自己的自定义模块。 我确实应用了自定义主题。 ShapeTracing让我在主题中放置替代品 – 我不知道我想做什么。

我把Build代码放在我的控制器中:

 [Themed] public ActionResult BasicInformation() { var basicInformation = _formManager.Build("MyLayoutBasicInformation"); return new ShapeResult(this, basicInformation); } 

最初,我使用HTML帮助程序对字段进行了硬编码。 所以,如果我的控制器是MyController,我有一个这样的视图:〜/ Views / My / BasicInformation.cshtml。 该文件仍存在于模块中,但现在由Build代码覆盖。

我怀疑我必须玩弄它。

更新:我设法在函数中执行此操作以显示按钮,只需弄清楚如何连接它。

 _NextButton: Shape.Button( Id: "NextButton", Name: "Next", Title: T("Next") ) 

但这只是显示一个没有文字的按钮。

默认情况下,不会为以这种方式构建的任何表单生成提交按钮。 要向表单添加提交按钮,请按以下方式更改代码:

 public void Describe(DescribeContext context) { Func 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") ) ), _Submit:Shape.Submit(Value:"Save") ); return f; }; context.Form("MyLayoutBasicInformation", form); }