Asp.net mvc 3 mvc3中检测移动设备的最佳实践是什么
我正在使我的一个站点能够将某些页面重定向到移动版本。我读过关于属性用法和51degrees.mobi的博客文章 我希望看到的是一个给定页面,经销商定位器,如果设备是移动设备,则重定向到/mobile/dealer locator。为了实现这一点,我设置了一个区域,其中包含DealLocator控制器和必要的视图。我直接测试了代码,它似乎工作正常 当我从实际设备或FF访问站点时,用户代理更改为iPhone3.0,我会被重定向到/mobile。有没有一种简单的方法可以将页面路由映射到移动路由 我应该提到的是,该站点使用isapi_重写,并且该页面有规则将/dealerlocator映射到/dealerlocator,dealerlocator是一个控制器Asp.net mvc 3 mvc3中检测移动设备的最佳实践是什么,asp.net-mvc-3,mobile,51degrees,Asp.net Mvc 3,Mobile,51degrees,我正在使我的一个站点能够将某些页面重定向到移动版本。我读过关于属性用法和51degrees.mobi的博客文章 我希望看到的是一个给定页面,经销商定位器,如果设备是移动设备,则重定向到/mobile/dealer locator。为了实现这一点,我设置了一个区域,其中包含DealLocator控制器和必要的视图。我直接测试了代码,它似乎工作正常 当我从实际设备或FF访问站点时,用户代理更改为iPhone3.0,我会被重定向到/mobile。有没有一种简单的方法可以将页面路由映射到移动路由 我应该
我还注意到表单帖子似乎不能正常工作,所以现在它可以使用了。从Shiju Varghese的博客帖子(您的问题提到过)中,
重定向MobileDeviceTobileAAttribute的方法
类:
// Override this method if you want to customize the controller/action/parameters to which
// mobile users would be redirected. This lets you redirect users to the mobile equivalent
// of whatever resource they originally requested.
protected virtual RouteValueDictionary GetRedirectionRouteValues(RequestContext requestContext)
{
return new RouteValueDictionary(new { area = "Mobile", controller = "Home", action = "Index" });
}
可以重写以处理此问题
在他的示例中,所有内容似乎都发送到
~/Mobile/Home/Index
,但您可以将请求发送到任何地方。他正在创建一个新的路由表,相当于您在Global.asax.cs中为非移动路由定义的路由表。您可以替换整个路由表,也可以遍历现有路由并返回一个仅包含移动对等项的字典。您可能需要查看支持移动设备的MVC 4 beta版。查看更多