MVC: несколько форм отправки в одном теге формы

Я только начинаю играть с MVC, и что-то у меня не получается. Я понимаю, как сделать простую форму ввода и использовать кнопку отправки, чтобы опубликовать форму, настроенную следующим образом:

<form runat="server" method="post" action="/Home/CreateNew" >

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


person gfrizzle    schedule 27.01.2009    source источник


Ответы (2)


Не следует размещать одну форму вокруг всей страницы. Разместите несколько форм ввода там, где они вам нужны. Вы также можете избавиться от runat="server". Вам это не понадобится в MVC.

Большая часть Ajax Control Toolkit просто не будет работать в MVC, поскольку MVC не имеет ViewState. Есть версия только для клиента, которая в какой-то степени работает.

Я рекомендую вместо этого использовать jQuery. Теперь это поддерживается корпорацией Майкрософт. и гораздо лучше вписывается в модель MVC.

person Craig Stuntz    schedule 27.01.2009

Крейг прав в том, что вам, вероятно, не следует пытаться заставить его работать с одной формой. Это очень анти-mvc и анти-html, однако, чтобы ответить на ваш вопрос, вы можете использовать javascript, чтобы изменить действие формы на лету.

person liammclennan    schedule 28.01.2009
comment
Спасибо. Отказ от старых привычек веб-форм в пользу MVC — медленный процесс, но я начинаю понимать, о чем идет речь. - person gfrizzle; 29.01.2009