ASP.NET Web Forms 페이지 프레임워크 구성 요소는 웹 페이지를 동적으로 생성하는 데 사용할 수 있는 확장 가능한 공용 언어 런타임 프로그래밍 모델입니다. ASP.NET 페이지 프레임워크 구성 요소는 ASP가 논리적으로 발전한 것이며(ASP.NET에서 제공하는 구문은 기존 페이지와 호환됨) 이전 모델의 여러 가지 중요한 결함을 해결하도록 특별히 설계되었습니다. 특히, 공통 기능을 캡슐화하는 재사용 가능한 UI 컨트롤을 생성하고 사용할 수 있는 기능을 제공함으로써 페이지 개발자가 작성해야 하는 코드의 양을 줄여 개발자가 명확하고 체계적으로 작업할 수 있도록 합니다. 페이지 로직("얽힌 코드"가 아님)을 구성합니다. ); 사용하는 개발 도구는 강력한 WYSIWYG(보이는 대로 얻는다) 페이지 디자인 지원 기능을 제공합니다(기존의 기존 ASP 코드는 불투명합니다). 이 문서에서는 ASP.NET 페이지 기능에 대한 몇 가지 기본 지식을 소개합니다.
첫 번째 ASP.NET 페이지 작성
ASP.NET 페이지는 .aspx 확장자를 가진 텍스트 파일입니다. 페이지는 요청하는 클라이언트 브라우저(또는 장치)에 대한 표시 콘텐츠를 생성하기 위해 서버에서 동적으로 컴파일되고 실행되는 코드와 태그로 구성됩니다. IIS 가상 디렉터리 트리 아래에 배포할 수 있습니다. 브라우저 클라이언트가 .aspx 리소스를 요청하면 ASP.NET 런타임은 대상 파일을 분석하고 이를 .NET 프레임워크 클래스로 컴파일합니다. 그런 다음 이 클래스를 사용하여 요청을 동적으로 처리할 수 있습니다. 처음 액세스할 때 컴파일되며 컴파일된 유형 인스턴스는 나중에 여러 요청에 재사용될 수 있습니다.
ASP.NET 페이지를 생성하려면 HTML 파일의 코드를 수정할 필요가 없습니다. 확장자를 .aspx로 변경하기만 하면 됩니다. 예를 들어, 다음 예는 사용자의 이름과 카테고리를 수집하고 사용자가 버튼을 클릭하면 양식을 원래 페이지로 다시 보내는 간단한 HTML 페이지를 보여줍니다.
<form action="intro1_vb.aspx" method= "post">
<h3> 이름: <입력 id="이름" 유형=텍스트>
카테고리: <id="카테고리" 크기=1 선택>
<옵션>심리</옵션>
<옵션>사업</옵션>
<옵션>popular_comp</옵션>
</선택>
<입력 유형=값 제출="조회">
</h3>
</form>
참고: "조회" 버튼을 클릭해도 아무 일도 일어나지 않습니다. 이는 .aspx 파일에 정적 HTML만 포함되어 있기 때문입니다(동적 콘텐츠 없음). 따라서 동일한 HTML이 클라이언트로 다시 전송되어 양식 필드(텍스트 상자 및 드롭다운 목록) 콘텐츠가 손실됩니다.
페이지에 간단한 코드 추가
ASP.NET에서 제공하는 구문은 ASP 페이지와 호환됩니다. .aspx 파일의 HTML 콘텐츠와 혼합할 수 있는 <% %> 코드 렌더링(렌더링) 블록을 지원합니다. 이러한 코드 블록은 페이지가 표시될 때 엄격하게 실행됩니다.
다음 예는 HTML에서 <% %> 렌더링 블록(매번 글꼴 크기 증가)을 사용하는 방법을 보여줍니다.
<form action="intro2_vb.aspx" method="post">
<h3> 이름: <입력 id="이름" 유형=텍스트>
카테고리: <id="카테고리" 크기=1 선택>
<옵션>심리</옵션>
<옵션>사업</옵션>
<옵션>popular_comp</옵션>
</선택>
</h3>
<입력 유형=값 제출="조회">
<p>
<% Dim I을 정수로 표시
I = 0~7%인 경우>
<글꼴 크기="<%=I%>"> ASP.NET에 오신 것을 환영합니다 </font> <br>
<%다음 %>
</form>
참고: 위 예의 <% %> 코드 블록은 스크립트 엔진에 의해 해석되지 않고 실제로 컴파일된다는 점에서 ASP와 다릅니다. 이는 런타임 실행 성능을 향상시킵니다.
ASP.NET 페이지 개발자는 <% %> 코드 블록을 사용하여 HTML 출력 정보를 동적으로 수정할 수 있습니다. 예를 들어, 다음 코드는 <% %> 코드 블록을 사용하여 클라이언트가 다시 보낸 결과를 해석하는 방법을 보여줍니다.
<form action="intro3_vb.aspx">
<h3> 이름: <입력 이름="이름" type=text value="<%=HttpUtility.HtmlEncode(Request.QueryString("Name"))%>">
카테고리: <이름 선택="카테고리" 크기=1>
<%
나는 정수로 희미해진다
희미한 값(2)을 문자열로
값(0) = "심리학"
값(1) = "비즈니스"
값(2) = "popular_comp"
I = 0에서 Values.Length까지 - 1
%>
<% If (Request.QueryString("Category") = Values(i)) %>
<선택한 옵션>
<% 기타 %>
<옵션>
<%끝나면 %>
<%=값(i)%>
</옵션>
<%다음%>
</선택>
</h3>
<입력 유형=제출 이름="조회" 값="조회">
<p>
<% If (Request.QueryString("Lookup") = 없음) %>
안녕하세요 <%=HttpUtility.HtmlEncode(Request.QueryString("Name")) %>, 선택하신 항목: <%=HttpUtility.HtmlEncode(Request.QueryString("Category")) %>
<%끝나면 %>
</form>
참고: <% %> 코드 블록은 ASP.NET 페이지에서 반환된 텍스트 출력 정보를 사용자 정의할 수 있는 강력한 방법을 제공하지만 명확한 HTML 프로그래밍 모델을 제공하지는 않습니다. 위의 예는 <%%> 코드 블록만 사용하는 개발자가 페이지의 상태를 관리하고 전송되는 값을 스스로 가로채야 함을 보여줍니다.