다음을 통해 공유


ASP.NET 웹 서버 컨트롤 및 브라우저 기능

업데이트: 2007년 11월

브라우저의 종류가 다르거나 종류는 같더라도 버전이 다르면 지원하는 기능이 달라집니다. ASP.NET 서버 컨트롤에서는 페이지를 요청한 브라우저를 자동으로 확인하고 해당 브라우저에 대해 적절한 태그를 렌더링합니다. 그러나 이전 버전의 브라우저에서 렌더링할 수 없는 컨트롤 기능도 있으므로 페이지가 모든 브라우저에서 원하는 방식으로 나타나게 하려면 가능한 많은 종류의 브라우저에서 페이지 출력을 확인하는 것이 좋습니다.

브라우저 종류 자동 검색

기본적으로 ASP.NET 페이지 프레임워크에서는 요청 중에 브라우저에서 서버로 전달되는 사용자 에이전트 정보를 읽어 브라우저 기능을 확인합니다. 이 정보는 HttpRequest 개체의 UserAgent 속성을 통해 사용할 수 있습니다. 페이지에서는 사용자 에이전트 정보를 구성 파일 및 브라우저 정의 파일의 에이전트 엔트리와 비교합니다.

참고:

구성 파일(.config)의 browserCaps 섹션은 .NET Framework 버전 2.0에서 사용되지 않습니다. 이 섹션의 구성 설정은 응용 프로그램 수준에 설정된 경우 이전 버전과의 호환성을 위해 계속 유효하지만 컴퓨터 수준의 %SystemRoot%\Microsoft.NET\Framework\versionNumber\CONFIG\Browsers 폴더와 응용 프로그램 수준의 기존 App_Browser 폴더에 있는 브라우저 정의 파일(.browser)에 포함된 정보와 병합됩니다. 자세한 내용은 브라우저 정의 파일 스키마(browsers 요소)를 참조하십시오.

현재 사용자 에이전트 정보와 파일에 나열된 사용자 에이전트 중 하나가 일치하면 페이지에서는 해당 브라우저의 스크립팅, 스타일 및 프레임 지원 여부 등과 같은 기능을 읽을 수 있습니다. 페이지의 컨트롤은 이러한 기능을 기반으로 XHTML, HTML 3.2 등 적절한 태그를 사용하여 웹 컨트롤을 렌더링합니다. ASP.NET에서 HTML을 렌더링하는 경우 최신 버전의 HTML 요소(CSS 스타일시트 규격)를 렌더링할지 아니면 이전 버전의 HTML 요소(CSS 이외의 규격)를 렌더링할지 결정할 수 있습니다. 이전 버전의 브라우저에 대해 ASP.NET에서는 CSS 스타일을 사용하는 대신 요소(예: font 요소)를 사용하여 서식 정보를 렌더링합니다.

브라우저 종류 검색 재정의

브라우저 자동 검색 기능을 사용하지 않고 명시적으로 페이지의 렌더링 방식을 제어하려면 페이지의 ClientTarget 속성을 설정하면 됩니다. 이 속성을 해당 페이지에 대한 @ Page 지시문의 특성으로 선언적으로 설정하거나 프로그래밍 방식으로 설정할 수 있습니다.

ClientTarget 속성의 값은 페이지를 렌더링할 브라우저의 종류에 대한 별칭입니다. 예를 들어 Microsoft Internet Explorer 6.0에 대해 페이지를 렌더링하게 하려면 uplevel 별칭을 사용할 수 있습니다. 별칭은 구성 파일의 clientTarget 섹션에 정의되어야 합니다. 미리 정의된 기본값은 ie5, ie4, uplevel 및 downlevel입니다.

downlevel 별칭을 지정하면 페이지를 요청한 브라우저의 종류에 관계없이 해당 페이지에서 HTML 3.2 호환 요소를 렌더링하도록 설정할 수 있습니다. 마찬가지로 uplevel을 지정하면 페이지에서 이전 버전의 브라우저에 대해서도 CSS 스타일 특성을 렌더링하도록 설정할 수 있습니다.

Machine.config 또는 Web.config 파일에 별칭을 정의하여 추가 별칭을 만들고 이를 통해 사용자 지정 브라우저 정의를 만들 수 있습니다. 자세한 내용은 ASP.NET 구성 설정을 참조하십시오.

AJAX 사용 ASP.NET 컨트롤 및 기능

ASP.NET의 AJAX 사용 기능은 대부분의 최신 브라우저와 호환되며 이러한 브라우저의 기본 보안 설정으로 실행됩니다. 이러한 컨트롤과 기능을 사용하려면 브라우저에서 클라이언트 스크립트를 실행할 수 있어야 합니다. AJAX 사용 컨트롤에는 UpdatePanelScriptManager 컨트롤이 있습니다. AJAX 사용 컨트롤 및 기능에 대해 권장되는 보안 설정 및 호환되는 브라우저 목록을 보려면 AJAX 사용 ASP.NET 페이지의 브라우저 보안 설정을 참조하십시오.

참고:

HttpBrowserCapabilities 개체에 의해 노출되는 속성을 사용하여 브라우저에서 ECMAScript(JScript, JavaScript)를 지원하는지 여부를 확인할 수 있습니다.

ASP.NET의 AJAX 기능에 대한 개요를 보려면 AJAX 및 클라이언트 기능 추가를 참조하십시오.

클라이언트 스크립트

ASP.NET 서버 컨트롤의 일부 기능은 클라이언트 스크립트를 실행할 수 있는지 여부에 따라 달라집니다. 브라우저에서 스크립트를 실행할 수 있는 경우 클라이언트 스크립트가 자동으로 생성되어 페이지의 일부로 전달됩니다. 그러나 이 경우에도 일부 사용자가 브라우저에서 스크립트 실행을 해제했다면 컨트롤의 기능을 제대로 사용할 수 없습니다. 자세한 내용은 ASP.NET 웹 페이지의 클라이언트 스크립트를 참조하십시오.

이전 버전의 브라우저 사용

브라우저는 두 개의 그룹으로 나뉘는데, 이를 "상위 그룹" 브라우저(최신 버전) 및 "하위 그룹" 브라우저(이전 버전)이라고도 합니다. 이러한 그룹은 브라우저에서 기본적으로 지원하는 기능의 종류를 정의하며 일반적으로 웹 페이지의 동작과 표시를 결정합니다.

일반적으로 "상위 그룹"의 브라우저에서는 최소한 다음과 같은 기능을 지원합니다.

  • ECMAScript(JScript, JavaScript) 버전 1.2

  • HTML 버전 4.0

  • MSDOM(Microsoft Document Object Model)

  • CSS 스타일시트

"하위" 그룹의 브라우저 및 클라이언트 장치는 다음과 같은 기능만 지원합니다.

  • HTML 버전 3.2

다음 표에 나열된 서버 컨트롤 속성은 상위 그룹 브라우저와 하위 그룹 브라우저에서 각각 다르게 렌더링됩니다.

서버 컨트롤 속성

상위 그룹 브라우저와 하위 그룹 브라우저의 렌더링 동작

AccessKey

이 속성은 하위 그룹 브라우저에서 모든 컨트롤에 대해 사용되지 않습니다. 이것은 HTML 4.0이 아니며 Internet Explorer 4.0 이상에서만 사용할 수 있습니다.

BackColor

이 속성은 하위 그룹 브라우저에서 Table, Panel, GridView, CalendarValidationSummary 같은 특정 컨트롤에 대해서만 사용됩니다. 또한 레이아웃이 Table 컨트롤 안에 있을 경우에는 CheckBoxList, RadioButtonListDataList에 대해서도 이 속성을 사용할 수 있습니다. 일반적으로 HTML 4.0에서는 거의 모든 컨트롤에 배경색을 출력할 수 있지만 HTML 3.2에서는 table 요소로 렌더링되는 컨트롤에만 배경색을 출력할 수 있습니다. Label 컨트롤, 유효성 검사기 컨트롤 및 Flow 모드의 목록 컨트롤을 포함하여 span 요소를 렌더링하는 컨트롤에 대해 BackColor는 Internet Explorer 5 이상에서 사용되며 Internet Explorer 4.0에서는 사용되지 않습니다.

BorderColor

이 속성은 하위 그룹 브라우저에서 BackColor와 동일한 테이블 기반 컨트롤에 대해서만 사용됩니다. 그러나 이 속성은 HTML 3.2 표준에 속하지 않는 bordercolor 특성으로 출력됩니다. Internet Explorer 3.0 이상을 포함한 일부 브라우저에서 이 특성을 지원하지만 모든 브라우저에서 지원하는 것은 아닙니다.

BorderStyle

이 속성은 하위 그룹 브라우저에서 사용되지 않습니다. HTML 3.2에는 이 속성과 동일한 기능을 수행하는 속성이 없습니다.

BorderWidth

이 속성은 HTML table 요소(Table, Panel, GridView, Calendar) 또는 img 요소(Image, AdRotator)로 렌더링되는 컨트롤에서만 사용됩니다. BorderWidth 속성은 픽셀로 지정된 경우 하위 그룹 브라우저에서만 사용되고, 그렇지 않은 경우에는 항상 border=1 또는 border=0으로 렌더링됩니다. 또한 GridLines가 None 이외의 값으로 설정되면 테이블 기반 컨트롤에 대해서만 BorderWidth 속성을 사용할 수 있습니다. HTML 3.2에서는 모눈선을 사용하지 않으면 테두리를 지정할 수 없기 때문입니다. Label 컨트롤, 유효성 검사기 컨트롤 및 Flow 모드의 목록 컨트롤을 포함하여 span 요소를 렌더링하는 컨트롤에 대해 BorderWidth는 Internet Explorer 5 이상에서 사용되며 Internet Explorer 4.0에서는 사용되지 않습니다.

CssClass

이 속성은 브라우저에 관계없이 항상 class 특성으로 렌더링됩니다. 대부분의 상위 그룹 브라우저에서는 class 특성을 인식합니다.

Enabled

이 속성은 컨트롤에서 이벤트와 함수가 발생하는지 여부를 지정하는 데 사용됩니다. Internet Explorer 4.0 이상에서 Enabled를 false로 설정하면 disabled=true 특성을 지정하여 컨트롤을 사용할 수 없도록 나타내고 해당 컨트롤에 입력할 수 없도록 만드는 것과 결과가 같습니다.

Font-Bold, Font-Italic, Font-Strikeout 및 이와 유사한 속성

이러한 속성은 상위 그룹 브라우저의 style 특성(예: 굵은 글꼴은 Font-Weight, 기울임꼴은 Font-Style)과 하위 그룹 브라우저의 독립 요소(예: b 및 i)로 렌더링됩니다.

Font-Size

이 속성은 명명된 글꼴 크기(작게, 더 작게 등)가 사용되는 경우에만 하위 그룹 브라우저에서 모든 컨트롤에 대해 사용됩니다. 이 속성은 상위 그룹 브라우저에서 style 특성으로 렌더링되고 하위 그룹 브라우저에서는 font 요소로 렌더링됩니다.

Font-Overline

이 속성은 하위 그룹 브라우저에서 사용되지 않습니다.

ForeColor

이 속성은 하위 그룹 브라우저에서 Image, AdRotator, HyperLinkLinkButton을 제외한 모든 컨트롤에 대해 사용됩니다. 하위 그룹 브라우저의 경우 ForeColor는 font 요소를 사용하여 렌더링됩니다.

Height

이 속성은 하위 그룹 브라우저에서 Label 컨트롤, 유효성 검사기 컨트롤, HyperLink 컨트롤 또는 LinkButton 컨트롤에 대해 사용되지 않습니다. 또한 Height 속성은 레이아웃이 Flow로 설정되어 있는 CheckBoxList, RadioButtonListDataList 컨트롤에 대해서도 사용되지 않습니다. 픽셀과 백분율 단위만 사용할 수 있습니다.

테이블 기반 컨트롤의 경우 안쪽 테이블의 높이는 하위 그룹 브라우저에 대해 렌더링되지 않습니다. HTML 4.01에서는 Height 특성이 더 이상 사용되지 않기 때문입니다. 따라서 상위 그룹 렌더링과 하위 그룹 렌더링 사이에 모양이 약간 다를 수 있습니다. 가장 명확한 차이는 SideBarStyle 속성에 대해 BackColor를 설정한 경우에 드러납니다. 상위 그룹의 경우 BackColor는 해당 열의 전체 길이로 표현되고, 하위 그룹 브라우저의 경우 이는 텍스트 단추를 배치하는 데 필요한 만큼만 표현됩니다.

TabIndex

이 속성은 하위 그룹 브라우저에서 모든 컨트롤에 대해 사용되지 않습니다. 이것은 HTML 4.0이 아니며 Internet Explorer 4.0 이상에서만 사용할 수 있습니다.

ToolTip

이 속성은 하위 그룹 브라우저에서 사용되지 않습니다.

Width

이 속성은 하위 그룹 브라우저에서 Label, HyperLink, LinkButton 또는 유효성 검사기 컨트롤에 대해 사용되지 않습니다. 또한 Width 속성은 레이아웃이 Flow로 설정되어 있는 CheckBoxList, RadioButtonListDataList 컨트롤에 대해서도 사용되지 않습니다. 픽셀과 백분율 단위만 사용할 수 있습니다.

참고 항목

작업

방법: ASP.NET 웹 페이지에서 브라우저 종류 검색

연습: 사용자 지정 서버 컨트롤 개발 및 사용

참조

ClientTarget

clientTarget 요소(ASP.NET 설정 스키마)

HttpBrowserCapabilities

Browser

UserAgent

WebControl

기타 리소스

ASP.NET 웹 페이지 프로그래밍

사용자 지정 ASP.NET 서버 컨트롤 개발