Ответ 1
Почему вы не просто используете простой html?
<form id="inactivate-form" method="post" >
</form>
Мне нравится чистота
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
для параметров action/controller:
@Html.BeginForm(null, null, FormMethod.Post, new Dictionary<string, object>() {{ "id", id }}
BeginForm
метод в конечном счете вызывает System.Web.Mvc.RouteValuesHelpers.MergeRouteValues
, который ищет имена действий и управления из RequestContext.RouteData
, если они null
проводка обратно в тот же действии/контроллер, как форма была создана с.