2009-09-10 5 views
0

한 페이지에 2 개의 html 양식이 있어야합니다. 하나는 로그인 세부 정보 용이고 다른 하나는 피드백 용입니다. 두 형식 모두 runat="server" attrib를 가질 수 없습니다.asp.net 페이지의 여러 서버 쪽 양식

제안 사항?

+1

[ASP.NET의 폼 기반 프로그래밍] (http://msdn.microsoft.com/en-us/magazine/cc164151.aspx) 문서가 유용 할 수 있습니다. –

답변

1

웹 양식을 사용하는 경우, 당신은 오직 페이지에 하나 개의 형태를 따른다에게 있습니다. 아마 허튼 소리일지도 모르지만 웹 양식 세계입니다 ...

전체 페이지 주위를 감싸는 형태. 그런 다음 버튼을 클릭하면 (또는 사용중인 모든 이벤트) 페이지의 모든 컨트롤 값에 액세스 할 수 있어야합니다.

1

예, 말씀 드린 것처럼 ASP.NET에서는 하나 이상의 양식 요소를 사용할 수 없습니다. 그러나 동일한 양식에서 둘 이상의 작업을 처리 할 수 ​​있습니다. 양식의 작업 특성을 사용하지 말고 < asp : Button >과 같은 asp.net 서버 컨트롤을 사용하고 포스트 백 컨트롤의 이벤트에 논리를 기록하십시오.

4

양식 중 하나를 일반 HTML 양식으로 처리하십시오. runat = "server"는 사용하지 마십시오. 폼에 해당하는 서버 측 변수가 없으므로 Request.Form 컬렉션의 모든 게시물에서 값을 수동으로 추출하십시오.

다른 방법으로 모든 요소를 ​​동일한 양식에 넣되 다른 컨트롤을 사용하여 제출하십시오. 각 컨트롤 집합 (및 해당 제출 단추)은 다른 요소로 인해 유효성 검사 오류가 발생하지 않도록 다른 유효성 검사 그룹에 있어야합니다. 제출 단추의 콜백에서 양식 처리를 처리하십시오.

또한 ASP.NET MVC로 이동하는 것이 좋습니다. MVC는 웹 관점에서 볼 때 훨씬 뛰어난 아키텍처입니다. 상태 비 저장 웹 모델과보다 밀접하게 정렬되며 ASP.NET에서 WinForms 개발을 모방하는 데 도움이되는 제한 사항이 없습니다.

1

ASP.NET 페이지 프레임 워크 아키텍처는 양식runat="server" 속성을 허용합니다. 이 일에 대해 걱정할 필요가 없습니다. 두 가지 목적으로 컨트롤을 webform에 배치하고 두 개의 asp.net 서버 컨트롤 의 click 이벤트를 별도로 처리하십시오.

1

논리적으로는 하나의 형식으로 분할해야합니다. 유효성 검사기를 사용하고 두 개의 "양식"에 다른 값을 입력하지 않으려면 하나의 "양식"으로 모두 동일해야하는 ValidationGroup이라는 .NET 컨트롤에 대한 속성이 있어야합니다.