2009-02-01 6 views
0

범주를 추가하기위한 양식 안에 하위 범주를 추가하는 두 번째 양식이 포함 된 컨트롤을 렌더링하고 있습니다. 범주 양식의 작업은 category/add이며 내부 양식의 작업은 ../addSubcategory입니다. 나의 문제는 내부 폼을 제출할 때 Add 액션이 호출된다는 것이다.asp.net mvc 멀티 폼 페이지 문제

그럼, 내 질문은 이것입니다 : 내 내부 양식 화재 액션 addSubcategory 만들 수 있습니까?

도움이 될만한 정보가 있습니까?

답변

1

당신이 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를 사용하여, 당신의 스페이서 사업부가있는 곳으로 하위 카테고리 양식을 이동합니다. 자연스럽게, 이것은 폼의 정확한 크기를 알아야하거나, 자바 스크립트를 사용하여 클라이언트 측에서 크기를 조정해야합니다.

0

"내부 양식"에 대해 우려하고 있습니다. 한 페이지에 두 개 이상의 양식을 가질 수 있지만 중첩 할 수는 없습니다. 이것은 아마 당신의 버그를 일으키는 원인 일 것입니다.

AJAX의 유무에 관계없이 페이지에 2 개의 별도 양식이 있어야합니다. 실제로 AJAX를 제출 한 경우에도 실제 양식을 사용하는 것이 좋습니다. 이렇게하지 않으면 자바 스크립트를 사용하지 않는 사용자의 정규 양식 제출으로 정상적으로 되돌릴 수 없기 때문입니다. ASP.NET MVC Ajax.Form 도우미가이를 처리합니다. Controller 액션 내에서 Request.IsAjaxRequest를 테스트하여 JSON 또는 새 View를 반환할지 여부를 결정해야합니다.