2011-04-12 39 views
0
public ActionResult Home() 
     { 
      return View(); 
     } 

这就是我在HomeController中对当前网站所做的一切。如何检测是否从移动设备调用操作,如果是,则重定向到MobileHome.aspx而不是Home.aspx。将动作重定向到手机视图

我不需要知道设备的细节,因为我实现在jQuery Mobile的观点,这应该正确地调整自身取决于它在渲染视图。

回答

0

下面是一个覆盖Controller类。我没有测试过这一点,所以认为这是伪代码:

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

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

    base.OnActionExecuted(filterContext); 
} 

可以使用Request.Browser.IsMobileDevice以确定该设备是移动(明显),然后检查是否结果是一个视图。但是,如果将实际视图传递给操作的结果,则更改视图名称是不够的。