#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 позволяет определить, является ли устройство мобильным (очевидно), а затем проверить, является ли результат представлением. Однако изменения имени представления недостаточно, если вы передаете фактическое представление в результат своего действия.