我正在启用其中一个网站,将某些网页重定向到移动版本。我已阅读Steve Sanderson和Shiju Varghese关于属性使用和51degrees.mobi的博文。
如果设备是移动设备,我希望发生的是给定页面,经销商定位器,重定向到/ mobile / dealer-locator。为了实现这一点,我使用dealerlocator控制器和必要的视图设置了一个区域。我直接测试了代码,它似乎正常工作。
当我从实际设备或FF访问该站点并将用户代理更改为iPhone 3.0时,我被重定向到/ mobile。有没有一种简单的方法可以将页面路由映射到移动路由?
我应该提到该网站使用的是isapi_rewrite,并且该网页的规则是将/ dealer-locator映射到/ dealerlocator并且dealerlocator是控制器。
我也注意到表单帖子似乎没有正常工作,所以它现在可以实现。
答案 0 :(得分:0)
来自Shiju Varghese的博客文章(您的问题提及),RedirectMobileDevicesToMobileAreaAttribute
类的方法:
// 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中定义的路由表相同。您可以替换整个路由表,也可以遍历现有路由并返回仅包含移动平均值的字典。