Example #1
0
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            var model = For != null ? For.Model : ViewContext.ViewData.Model;

            var form = HtmlGenerator.FormFor(model);

            var url = RequestServices.GetService <UrlLookup>().For(model);

            if (url.IsNotEmpty())
            {
                form.Attr("action", RequestServices.GetService <UrlLookup>().For(model));
            }

            form.MergeAttributes(output.Attributes);

            output.TagName = null;
            output.PreElement.SetHtmlContent(form.ToHtmlString());
        }
Example #2
0
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            // FIXME: send upper to base
            var model = Model ?? (For != null ? For.Model : ViewContext.ViewData.Model);

            var form = HtmlGenerator.FormFor(model);

            if (output.Attributes.ContainsName("action") == false)
            {
                var url = RequestServices.GetRequiredService <UrlLookup>().For(model);

                if (url.IsNotEmpty())
                {
                    output.Attributes.Add("action", url);
                }
            }

            if (output.Attributes["method"] == null || !output.Attributes["method"].Value.ToString().CaseCmp("get"))
            {
                var antiforgeryAccessor = RequestServices.GetService <IAntiforgeryAccessor>();

                if (antiforgeryAccessor.HasToken)
                {
                    var input = new HtmlTag("input")
                                .Attr("type", "hidden")
                                .Name(antiforgeryAccessor.FormFieldName)
                                .Value(antiforgeryAccessor.RequestToken);

                    form.Append(input);
                }
            }

            form.MergeAttributes(output.Attributes);

            output.TagName = null;
            output.PreElement.AppendHtml(form);
            output.PostElement.AppendHtml("</form>");
        }
Example #3
0
        public void Form_should_have_id_named_as_model_type()
        {
            var form = _htmlGenerator.FormFor(new AccountRegister.Command());

            form.Id().ShouldBe("account-register-form");
        }