Перенаправить действие на мобильный просмотр

#asp.net-mvc-2 #mobile-website

#asp.net-mvc-2 #мобильный веб-сайт

Вопрос:

 public ActionResult Home()
        {
            return View();
        }
  

Это то, что у меня есть для моего текущего сайта в HomeController. Как я могу определить, вызывается ли действие с мобильного устройства, и если это так, перенаправить его на MobileHome.aspx вместо Home.aspx.

Мне не нужно знать подробности устройства, потому что я реализую представление в jQuery Mobile, которое должно корректно настраиваться в зависимости от представления, в котором оно отображается.

Ответ №1:

Следующий пост в блоге может оказаться для вас полезным.

Ответ №2:

Ниже приведено переопределение класса контроллера. Я не тестировал это, поэтому считайте это псевдокодом:

 protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
    if (this.Request.Browser.IsMobileDevice amp;amp; filterContext.Result is ViewResultBase)
    {
        var viewResult = filterContext.Result as ViewResultBase;

        viewResult.ViewName = "Mobile"   viewResult.ViewName;
    }

    base.OnActionExecuted(filterContext);
}
  

Вы можете использовать запрос.Браузер.IsMobileDevice позволяет определить, является ли устройство мобильным (очевидно), а затем проверить, является ли результат представлением. Однако изменения имени представления недостаточно, если вы передаете фактическое представление в результат своего действия.