예제 #1
0
        /// <summary>
        /// 모바일 기기 여부 판별하고, End Point 에 적합한 View Name 을 리턴합니다.
        /// </summary>
        /// <returns></returns>
        public static string GetViewName(string actionName)
        {
            string viewName = string.Empty;

            try
            {
                string userAgent = HttpContext.Current.Request.UserAgent.ToLower();

                if (IsMobile())
                {
                    // 모바일 기기일 경우 Prefix "m_" 을 Action Name 에 붙임
                    viewName = actionName + POSTFIX;
                }
                else
                {
                    viewName = actionName;
                }
            }
            catch (Exception ex)
            {
                HelperNLog.WriteNLog4Common(HttpContext.Current.Request.Url.AbsoluteUri, ex.ToString());
            }

            return(viewName);
        }
예제 #2
0
        /// <summary>
        /// 모바일 기기 여부 판별하고, 그 결과를 리턴합니다.
        /// </summary>
        /// <returns></returns>
        public static bool IsMobile()
        {
            Regex reg = new Regex("iPhone|iPod|iPad|Mobile|UP.Browser|Android|BlackBerry|Windows CE|Nokia|webOS|Opera Mini|SonyEricsson|Opera Mobi|Windows Phone|IEMobile|POLARIS|SKT|LG|LGPlayer|Bada|Kindle|Wii", RegexOptions.IgnoreCase);

            try
            {
                return(!String.IsNullOrEmpty(HttpContext.Current.Request.UserAgent) && reg.IsMatch(HttpContext.Current.Request.UserAgent) ? true : false);
            }
            catch (Exception ex)
            {
                HelperNLog.WriteNLog4Common(HttpContext.Current.Request.Url.AbsoluteUri, ex.ToString());

                return(false);
            }
        }
예제 #3
0
        /// <summary>
        /// PC / Mobile 용 View Name 을 구하고 그 값을 반환합니다. View 가 유효하지 않을 경우 Redirect 처리 됩니다.
        /// </summary>
        /// <param name="controller"></param>
        /// <param name="actionName"></param>
        /// <returns></returns>
        public static string GetViewName(Controller controller, string actionName)
        {
            string viewName = string.Empty;

            try
            {
                // Custom PartialView 와 같이 {ViewName}_Mobile 로 작성된 Action 의 경우, Multi View 검증을 하지 않는다.
                if (actionName.ToLower().IndexOf("_mobile") == -1)
                {
                    string userAgent = HttpContext.Current.Request.UserAgent.ToLower();

                    if (IsMobile())
                    {
                        // 모바일 기기일 경우 Postfix "_Mobile" 을 Action Name 에 붙임
                        viewName = actionName + POSTFIX;
                    }
                    else
                    {
                        viewName = actionName;
                    }

                    // View 가 존재하는지 여부 체크 후, Redirect 처리 ( Get Verb 만 대상 )
                    if (HttpContext.Current.Request.HttpMethod == "GET")
                    {
                        if (ViewExists(controller, viewName) == false)
                        {
                            return("-1");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                HelperNLog.WriteNLog4Common(HttpContext.Current.Request.Url.AbsoluteUri, ex.ToString());
            }

            return(viewName);
        }