2011-03-08 3 views
44

.NET MVC3 응용 프로그램을 개발 중입니다..NET MVC3 응용 프로그램에서 모바일 브라우저를 검색하는 방법

사용자가 RAZOR를 사용하여보기에서 모바일 브라우저를 사용하는지 확인하는 좋은 방법이 있습니까? 모바일 브라우저 인 경우 표시 논리를 다르게하고 싶습니다.

감사합니다.

+4

당신은 컨트롤러 수준에서이 일을하는 것이 좋습니다 반환 된 실제보기를 변경합니다. –

+1

좋은 지적. 나는 그것이 얼마나 광범위한 변화에 달려 있다고 생각한다. 그것은 단지 다른 CSS 파일을 포함하는 경우, 그것은보기에서 이루어져야합니다. 완전히 다른 견해라면 완전히 분리 된 상태로 유지하는 것이 좋습니다. 의견을 보내 주셔서 감사합니다. – Dave

답변

69

MVC3은 Request.Browser 객체에서 IsMobileDevice 플래그를 노출합니다.

면도기 코드에서이 변수를 쿼리하고 그에 따라 렌더링 할 수 있습니다. 보기의 예를 들어

, (면도기) :

@if (Request.Browser.IsMobileDevice) { 
    <!-- HTML here for mobile device --> 
} else { 
    <!-- HTML for desktop device --> 
} 
+1

Down-voted -이 기능은 전혀 작동하지 않습니다. –

+14

확실합니다. 메신저 프로덕션 프로젝트에서 사용하고 있습니다. 모바일 목록이 더 이상 최신 상태로 유지되지 않으므로 몇 가지 제한 사항이 있습니다. 업데이트 된 목록은 51degree.mobi (아래 게시물 참조)를 사용할 수 있습니다. 그런 다음이 기술을 사용하여 모바일 브라우저를 감지 할 수 있습니다. – tsiorn

+1

iPad에서 작동하지 않습니다. – WhatsInAName

21

브라우저 감지 기능 내장이 더 이상 최신 상태로 유지되고있다. Scott Hanselman's blog을 살펴보십시오. 자세한 내용은 하단의 "더 자세히"섹션을 참조하십시오.

더 정확한 탐지를 위해 51Drees.mobi를 살펴 보시기 바랍니다. 또한 Hanselman이 MVC3에서이를 구현하는 방법을 참조하는 Steve Sanderson blog을 참조하십시오.

0

나는이 방법 (나를 위해 잘 작동)

if (eDurar.MobileDetect.DeviceType.Any(m => Request.UserAgent.Contains(m))) 
{ 
    Layout = "~/Views/Shared/_mobileLayout.cshtml"; 
    @Html.Partial("mobileIndex"); 

} 
else 
{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
    @Html.Partial("desktopIndex"); 
} 

I 모바일 특정 페이지가 더 피하고, 당신이 응답 부트 스트랩 뭔가를 사용하는 것이 좋습니다를 사용

관련 문제