Подтвердить что ты не робот

Возможно ли разложить одну форму внутри другой в бритве?

Я помещаю оператор начала/конца в страницу макета, чтобы не повторять его на нескольких страницах. Ниже упрощенная версия кода.

@using(Html.BeginForm())
{
    @RenderBody()

    <input type = "submit" name = "nextButton" value = "Next-->" />
}

Все работает хорошо. К сожалению, у меня есть страница с несколькими кнопками Удалить. Я хочу создать форму для каждой кнопки удаления, чтобы она могла отправить идентификатор элемента для удаления обратно на контроллер.

Могу ли я сделать это, зная, что там есть еще одна форма?

Спасибо за помощь

4b9b3361

Ответ 1

Как говорит г-н Шрифт, спецификации HTML запрещают вложенные формы. Поскольку MVC только генерирует стандартный HTML, вы должны работать в рамках спецификации.

Почему бы просто не создать два основных макета и использовать форму, основанную на большинстве случаев, но использовать ее без формы, когда вам нужно больше контролировать встроенные формы.

Вот почему вы должны использовать формы только там, где они нужны, а не только везде.

Ответ 2

Обратите внимание, что вложенность форм не допускается согласно спецификациям W3

Каждая форма должна быть заключена в элемент FORM. Может быть несколько форм в одном документе, но элемент FORM не может быть вложенный.

Существует непростая статья о предостережениях форм вложенности здесь.

В этом случае лучше создать form для каждой кнопки вместо одной формы.

Веб-формы ASP.Net ограничили вас наличием нескольких форм на странице с использованием атрибута runat=server (и рамки, обеспечивающей возможность разрешать только одну страницу). MVC forms являются чистым HTML, поэтому вы можете иметь несколько из них.