Ejemplo n.º 1
0
        /**
         * Renders view fragment for the Form, using the specified model.
         * Generates javascript to initialize all rendered components.
         *
         * @param form      Form of the fragment to be rendered
         * @param fragment  fragment name
         * @param model     model for the fragment view
         * @return      HtmlFragment with rendered HTML and initialization script
         */
        public HtmlFragment RenderFragment(Form form, string fragment, object model)
        {
            form.FormEngine = this;
            var reg     = new RenderingContext(form);
            var builder = new StringBuilder();

            reg.Collect(() => builder.Append(_viewRenderer.RenderFragment(form, fragment, model)));
            var script = new JsClosure(() => {
                foreach (var comp in reg.Components)
                {
                    comp.Init();
                }
            });

            return(new HtmlFragment(builder.ToString(), script));
        }