вопрос мультиформальной страницы в asp.net mvc - PullRequest
0 голосов
/ 02 февраля 2009

Внутри формы для добавления категории я отображаю элемент управления, который содержит вторую форму для добавления подкатегории. Действие формы категории - это категория / добавление, а действие внутренней формы - это ../addSubcategory. Моя проблема в том, что при отправке внутренней формы вызывается мое действие Add.

Итак, мой вопрос таков: как я могу сделать свое внутреннее действие огня addSubcategory?

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

1 голос
/ 02 февраля 2009

Если вы используете AJAX для публикации, вы можете написать свои собственные методы js, которые запускаются при нажатии кнопки отправки, вызывая правильные методы действия.

в случае, если вы не используете AJAX, я бы рекомендовал разделить две формы в вашей разметке, а затем выровнять форму подкатегории внутри формы категории с помощью css. используйте пустой div в качестве «проставки» в форме категории, чтобы освободить место для формы подкатегории.

полупсевдо-пример, чтобы (надеюсь) прояснить, что я имею в виду:

<form name="categoryForm" id="catForm" action="/Category/Add">
<!-- some form elements here... -->
<div id="subCategorySpacer">&nbsp</div>
<!-- maybe some more form elements... -->
<input type="submit">
</form>

<form name="subCategoryForm" id="subCatForm" action="/Category/addSubcategory">
<!-- form elements here too. and a submit button -->
</form>

и затем вы перемещаете форму подкатегории в место, где у вас есть разделитель, используя css. естественно, для этого необходимо знать точные размеры форм или использовать javascript для изменения их размера на стороне клиента.

0 голосов
/ 02 февраля 2009

Я обеспокоен тем, что вы говорите «внутренняя форма». Вы можете иметь две (или более) формы на странице, но не можете их вкладывать. Это, вероятно, является причиной вашей ошибки.

С или без AJAX вам необходимо иметь две отдельные формы на странице. Я настоятельно рекомендую использовать реальную форму, даже с отправкой AJAX, потому что, если вы этого не сделаете, вы не сможете элегантно вернуться к обычной отправке формы для пользователей, которые отключили JavaScript. Об этом позаботится помощник ASP.NET MVC Ajax.Form. Обязательно протестируйте Request.IsAjaxRequest внутри действия вашего контроллера, чтобы определить, возвращать ли JSON или новый View.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...