我喜欢这里的清洁
using (Html.BeginForm())
并且讨厌添加 HTML 属性需要指定控制器、操作和表单方法。
using (Html.BeginForm("Action", "Controller", FormMethod.Post,
new { id = "inactivate-form" })
有没有一种方法可以使用Html.BeginForm
和指定表单的 HTML 属性,而无需手动连接其他所有内容?
我喜欢这里的清洁
using (Html.BeginForm())
并且讨厌添加 HTML 属性需要指定控制器、操作和表单方法。
using (Html.BeginForm("Action", "Controller", FormMethod.Post,
new { id = "inactivate-form" })
有没有一种方法可以使用Html.BeginForm
和指定表单的 HTML 属性,而无需手动连接其他所有内容?
为什么不只使用纯 html?
<form id="inactivate-form" method="post" >
</form>
您可以创建一个添加“Id-ed”表单的自定义扩展:
public static MvcForm BeginIdedForm(this HtmlHelper htmlHelper, string id)
{
return htmlHelper.BeginForm(null, null, FormMethod.Post, new Dictionary<string, object>() { { "id", id } });
}
用法然后就变成了
using(Html.BeginIdedForm("inactiveate-form"))
类似于@nick-olsen 对动作/控制器参数的回答null
:
@Html.BeginForm(null, null, FormMethod.Post, new Dictionary<string, object>() {{ "id", id }}
该BeginForm
方法最终调用该方法,如果它们回发到与创建表单相同的操作/控制器,System.Web.Mvc.RouteValuesHelpers.MergeRouteValues
则从 中查找操作和控制器名称。RequestContext.RouteData
null