如何使用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); }