3

我正在使用具有 3 个快照点的 MVC4 Web 应用程序 - 台式机、手机和平板电脑。

我已经设置了显示模式,因此视图会根据访问站点的设备而有所不同。我还使用媒体查询和 jquery mobile 来协助网站的移动开发。

当通过电话访问该站点时,向最终用户显示的数据库存储数据较少。因此,手机不需要控制器上的繁重处理。

当消费应用程序是手机时,是否有任何优雅的方法来改变使用的控制器或操作方法?我希望 url 保持不变,也不要在设备的控制器操作方法中进行检查。

以上有什么办法吗?

4

1 回答 1

1

示例帖子在这里:

http://weblogs.asp.net/shijuvarghese/archive/2011/02/25/mobile-enabled-web-apps-with-asp-net-mvc-3-and-jquery-mobile.aspx

关于使用过滤器属性将用户重定向到 MVC 项目的移动区域。

我能找到的最好的,我知道你说你不想更改 URL .. 所以也许你可以写一个过滤器属性来应用到你的控制器.. 这样一个动作就被忽略了?

像这样的东西可能(未经测试)但它很讨厌,因为它必须不断维护,并且实际上只是将更多代码注入到你的动作管道中,这可能会让人感觉有点“神奇”,我个人可能会使用单独的区域:

public class MobileDeviceAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.HttpContext.Request.Browser.IsMobileDevice)
        {
            if (filterContext.ActionDescriptor.ActionName == "foo")
                filterContext.HttpContext.Response.RedirectToRoute("bar");
        }
    }
}
于 2013-01-24T02:08:06.750 回答