2013-08-08 3 views
0

MVC에는 "system.web.webpages"라는 프로젝트에서 참조 할 수있는 dll이 있으며이를 사용하여 global.asax 파일의 application_start 메서드 내에서 적응 형 렌더링을 수행합니다 (웹 양식의 적응 형 렌더링

).
DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("iPhone") 
      { 
       ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf 
        ("iPhone", StringComparison.OrdinalIgnoreCase) >= 0) 
      }); 

Web Forms에도 비슷한 기능이 있습니까?

가능한 경우 모바일 마스터 페이지가있는 별도의 모바일 폴더를 만들고 사전 이벤트를 체크 인하 고 전환하여 내 모바일 마스터 페이지를 렌더링하고 싶지 않습니다. 그것은 당신이 모바일 장치를 감지하고 렌더링을 적응 Request.Browser.IsMobileDevice을 사용할 수 있습니다

답변

1

등, 분명히 모바일 장치의 특정 유형을 확인하기위한 유연한 아니다. uptodate 모바일 장치 목록에서 선호하는 경우 예를 들어 51degree.mobi를 사용할 수 있습니다.

Here은 귀하를 도울 수있는 광범위한 백서입니다. 백서에 따르면

:

편집

"이것은 쉽게 할 수 있습니다 예를 들어, 같은 웹 양식에 다음과 같이 PreInit 처리기를 추가 할 수 있습니다.

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    if (Request.Browser.IsMobileDevice) 
     MasterPageFile = "~/Mobile.Master"; 
} 

"

51degrees.mobi가 정확한 모바일 장치를 제공하는 경우, 거기에있는 다른 장치에 대한 마스터 페이지 파일을 설정할 수 있습니다.

+0

고마워, 그냥 내가 뭘 찾고 있었는지 ... 그러나 MVC의 경우, 브라우저는 이미 위에서 언급 한 "DisplayModelProvider"를 사용하는 장치 유형에 따라보기를 올바르게 렌더링 할 수 있습니다. WebForms를 사용하여 장치 유형을 알고 싶다면 (양식을 제대로 렌더링하려면 무료 패키지가 아닌 프리미엄 패키지를 가져와야합니다.이 패키지는 모바일 장치에 들어 있는지 또는 무료)은 기본적으로 .Net에 내장 된 "Request.Browser.IsMobileDevice"속성을 확인할 수 있기 때문에 기본적으로 쓸모가 없습니다. – sagesky36

+0

mobi의 문서에 따르면 모바일 장치의 종류를 정확히 알 수 있습니다. 해당 장치에 대한 특정 마스터 페이지 (다른 CSS 스타일 포함)로 리디렉션하지 않고도 WebForm 페이지를 올바르게 렌더링 할 수 있습니까? (MVC에서와 같이 원래 게시물에 설명되어 있습니다.) MVC를 사용하면 방금 경우 리디렉션 할 필요가 없습니다. Views \ Shared 폴더에 다른 마스터 페이지 파일을 포함합니다. 예를 들어 위의 원본 게시물에서 iPhone을 확인하면 지정된 폴더 (_Layout.iPhone.cshtml)에 다음 파일이 있으면 변경 사항없이 View가 올바르게 렌더링됩니다 – sagesky36

+0

WebForms에 대한 예제로 내 대답 편집 – Stephen