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()); }
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>"); }
public void Form_should_have_id_named_as_model_type() { var form = _htmlGenerator.FormFor(new AccountRegister.Command()); form.Id().ShouldBe("account-register-form"); }