Возможно ли разложить одну форму внутри другой в бритве?
Я помещаю оператор начала/конца в страницу макета, чтобы не повторять его на нескольких страницах. Ниже упрощенная версия кода.
@using(Html.BeginForm())
{
@RenderBody()
<input type = "submit" name = "nextButton" value = "Next-->" />
}
Все работает хорошо. К сожалению, у меня есть страница с несколькими кнопками Удалить. Я хочу создать форму для каждой кнопки удаления, чтобы она могла отправить идентификатор элемента для удаления обратно на контроллер.
Могу ли я сделать это, зная, что там есть еще одна форма?
Спасибо за помощь
Ответы
Ответ 1
Как говорит г-н Шрифт, спецификации HTML запрещают вложенные формы. Поскольку MVC только генерирует стандартный HTML, вы должны работать в рамках спецификации.
Почему бы просто не создать два основных макета и использовать форму, основанную на большинстве случаев, но использовать ее без формы, когда вам нужно больше контролировать встроенные формы.
Вот почему вы должны использовать формы только там, где они нужны, а не только везде.
Ответ 2
Обратите внимание, что вложенность форм не допускается согласно спецификациям W3
Каждая форма должна быть заключена в элемент FORM. Может быть несколько форм в одном документе, но элемент FORM не может быть вложенный.
Существует непростая статья о предостережениях форм вложенности здесь.
В этом случае лучше создать form
для каждой кнопки вместо одной формы.
Веб-формы ASP.Net ограничили вас наличием нескольких форм на странице с использованием атрибута runat=server
(и рамки, обеспечивающей возможность разрешать только одну страницу). MVC forms
являются чистым HTML, поэтому вы можете иметь несколько из них.