0

我正在启用我的一个网站将某些页面重定向到移动版本。我已经阅读了Steve Sanderson和Shiju Varghese关于属性使用和 51degrees.mobi 的博客文章。

我希望发生的是给定页面,dealer-locator,如果设备是移动设备,则重定向到 /mobile/dealer-locator。为此,我使用经销商定位器控制器和必要的视图设置了一个区域。我已经直接测试了代码,它似乎可以正常工作。

当我在用户代理更改为 iPhone 3.0 的情况下从实际设备或 FF 访问该站点时,我被重定向到 /mobile。有没有一种简单的方法可以将页面路由映射到移动路由?

我应该提到该站点使用 isapi_rewrite 并且有问题的页面具有将 /dealer-locator 映射到 /dealerlocator 的规则,并且dealerlocator 是一个控制器。

Ive 还注意到表单帖子似乎无法正常工作,因此暂时可以使用。

4

1 回答 1

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 中为您的非移动路由定义的路由表等效。您可以替换整个路由表,也可以遍历现有路由并返回仅包含移动等效项的字典。

于 2011-12-29T16:35:24.280 回答