将操作重定向到移动视图

时间:2011-04-12 02:38:22

标签: asp.net-mvc-2 mobile-website

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

这就是我对HomeController中当前站点的拥有。如何检测是否从移动设备调用了该操作,如果是,则重定向到MobileHome.aspx而不是Home.aspx。

我不需要知道设备的细节,因为我在JQuery Mobile中实现了视图,它应该根据渲染的视图正确调整自己。

2 个答案:

答案 0 :(得分: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来确定设备是否可移动(显然),然后检查结果是否为视图。但是,如果将实际视图传递给操作结果,则更改视图名称是不够的。

答案 1 :(得分:0)

您可能会发现following blog post有用。