2011-12-29 46 views
0

我正在啓用我的某個網站將某些網頁重定向到移動版本。我已閱讀關於屬性使用和51degrees.mobi的Steve SandersonShiju Varghese的博客文章。在mvc3中檢測移動設備的一些最佳做法

如果設備是移動設備,我希望發生的是給定頁面,經銷商定位器,重定向到/ mobile/dealer-locator。爲了實現這一點,我已經與經銷商定位器控制器和必要的視圖建立了一個區域。我直接測試了代碼,它似乎正常工作。

當我從實際設備或用戶代理更改爲iPhone 3.0的FF訪問網站時,我被重定向到/ mobile。有沒有簡單的方法將頁面路線映射到移動路線?

我應該提到,該網站使用isapi_rewrite和有問題的網頁有規則,映射/經銷商定位器/ dealerlocator和dealerlocator是一個控制器。

我也注意到,表單帖子看起來不能正常工作,所以它現在得到了一個get。

+1

您可能想看看支持手機的MVC 4測試版。查看更多[here:](http://www.asp.net/mvc/tutorials/mvc-4/aspnet-mvc-4-mobile-features) – gdoron 2011-12-29 16:35:24

回答

0

從石咀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中爲您的非移動路由定義的路由表。您可以替換整個路由表,也可以循環訪問現有路由並返回僅包含移動設備的字典。