您的位置:首页 > 其它

Umbraco Forms 使Rendering Forms scripts 在不同的template中

2016-07-26 12:00 381 查看
具体请参考 https://our.umbraco.org/documentation/products/umbracoforms/developer/Rendering-Scripts/
转载 https://our.umbraco.org/documentation/products/umbracoforms/developer/Rendering-Scripts/

Rendering Forms scripts where you want

Besides markup Forms will also output some JavaScript, by default this JavaScript is outputted just below the markup. If you wish to change this behaviour follow the next steps (like if all your js is rendered at the bottom of you page)

Change the Forms partial view macro

First we'll need to tell the Forms partial macro (that is used to render forms) to only render the markup and not the scripts. Navigate to the developer section and open the > Partial View Macro File > Insert Umbraco Form

It should have the following contents

@inherits Umbraco.Web.Macros.PartialViewMacroPage

@if (Model.MacroParameters["FormGuid"] != null)
{
var s = Model.MacroParameters["FormGuid"].ToString();
var g = new Guid(s);

Html.RenderAction("Render", "UmbracoForms", new {formId = g});


Here we'll make a small change, in the RenderAction call we'll provide an additional argument mode = "form"

so go from

Html.RenderAction("Render", "UmbracoForms", new {formId = g});


to

Html.RenderAction("Render", "UmbracoForms", new {formId = g, mode = "form"});


Place the Render scripts macro on your template

Now we'll need to let Forms know where we want to output the script instead. So Navigate to the settings section and select your template that should contain the scripts. There simply insert the Render Umbraco Forms Scripts macro.

比如,我们想把Forms 的scripts包含在master template中,那么就在master template 中的尾部 Insert Macro - Render forms scripts

系统会自动产生 语句 @Umbraco.RenderMacro("FormsRenderScripts") 放在master template的尾部
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: