【发布时间】:2017-07-15 10:47:45
【问题描述】:
内置FormTagHelper支持“asp-action”、“asp-controller”、“asp-route”等属性。他们工作正常。但我不想为每个表单手动指定它们的值。是否可以根据当前页面URL自动生成“action”属性?
查看 FormTagHelper 的实现后,我发现它使用了 IHtmlGenerator。当我在我看来手动调用IHtmlGenerator.GenerateForm(this.ViewContext, null,null,null,"post", null) 时,它的效果很好。该表单是使用有效的“操作”方法(包括查询字符串)自动生成的。但是我能用 element 得到同样的结果吗?
根据这个实现,我需要在 FormTagBuilder 中调用以下代码行。但是“action”和“controller”设置为null
tagBuilder = Generator.GenerateForm(
ViewContext,
Action,
Controller,
Fragment,
routeValues,
method: null,
htmlAttributes: null);
但不知道怎么做
附:如果我指定asp-route="",那么它会生成“action”元素,但它不包含当前页面的查询字符串。
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-core asp.net-core-mvc