Html.BeginForm с атрибутами html asp.net mvc4 - программирование
Подтвердить что ты не робот

Html.BeginForm с атрибутами html asp.net mvc4

У меня есть действие "Редактировать" с помощью Html.BeginForm. Как добавить атрибуты HTML?

Я знаю только один способ:

@using (Html.BeginForm("Edit", "Clients", FormMethod.Post, new { @class="example"})) {

}

но если я использую этот метод, я не могу передать текущий идентификатор

Можно ли добавлять атрибуты HTML в форму без изменения URL-адреса действия?

4b9b3361

Ответ 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();