Html.BeginForm с атрибутами html asp.net mvc4
У меня есть действие "Редактировать" с помощью Html.BeginForm
. Как добавить атрибуты HTML?
Я знаю только один способ:
@using (Html.BeginForm("Edit", "Clients", FormMethod.Post, new { @class="example"})) {
}
но если я использую этот метод, я не могу передать текущий идентификатор
Можно ли добавлять атрибуты HTML в форму без изменения URL-адреса действия?
Ответы
Ответ 1
Вы можете сделать следующее:
@using( Html.BeginForm("Edit", "Clients", new { Id=Model.Id},
FormMethod.Post, new { @class = "example" } ) )
{
}
- Значения маршрута, такие как "id", передаются в качестве третьего параметра.
- В качестве пятого параметра передаются атрибуты HTML, такие как "класс".
Смотрите MSDN документы.
Ответ 2
Параметры Action и Controller также могут быть нулевыми, чтобы использовать действие по умолчанию:
Html.BeginForm( null, null, FormMethod.Post, new { id="formname", @class="formclass" })
Ответ 3
Вызов через ActionLink из ControllerA
@using (Html.BeginForm("Create",
"StudentPChoice",
new { StudentPChoiceId = Model.StudentPChoiceId },
FormMethod.Post))
{
}
ИЛИ
@using (Html.BeginForm("Create",
"ControllerB",
new { ControllerBId = Model.ControllerAId },
FormMethod.Post))
{
}
Ответ 4
Если это может быть полезно для некоторых людей, это работает для меня:
@using (Html.BeginForm("RefreshData", "Home", FormMethod.Post,
new { Id = "timerangeId", @name = "timerange" }))
{
// form elements and input
}
В Javascript:
document.getElementById("timerangeId").submit();