内置的FormTagHelper支持“asp-action”,“asp-controller”,“asp-route”等属性。他们工作正常。但我不想为每个表单手动指定它们的值。是否可以根据当前页面URL自动生成“action”属性?如何在ASP.NET核心中为<form>标记生成器生成“动作”方法
看到FormTagHelper的实现后,我看到它使用IHtmlGenerator。当我在我看来手动调用IHtmlGenerator.GenerateForm(this.ViewContext, null,null,null,"post", null)
时,它工作得很好。该表格是使用有效的“操作”方法(包括查询字符串)自动生成的。但是,我能得到与元素相同的结果吗?
根据这个实现,我需要在FormTagBuilder中调用以下代码行。但是,随着“行动”和“控制器”设置为null
tagBuilder = Generator.GenerateForm(
ViewContext,
Action,
Controller,
Fragment,
routeValues,
method: null,
htmlAttributes: null);
但不知道如何做到这一点
附:如果我指定asp-route=""
,则它会生成“action”元素,但它不包含当前页面的查询字符串。