Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 mvc3中检测移动设备的最佳实践是什么_Asp.net Mvc 3_Mobile_51degrees - Fatal编程技术网

Asp.net mvc 3 mvc3中检测移动设备的最佳实践是什么

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。有没有一种简单的方法可以将页面路由映射到移动路由 我应该

我正在使我的一个站点能够将某些页面重定向到移动版本。我读过关于属性用法和51degrees.mobi的博客文章

我希望看到的是一个给定页面,经销商定位器,如果设备是移动设备,则重定向到/mobile/dealer locator。为了实现这一点,我设置了一个区域,其中包含DealLocator控制器和必要的视图。我直接测试了代码,它似乎工作正常

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

我应该提到的是,该站点使用isapi_重写,并且该页面有规则将/dealerlocator映射到/dealerlocator,dealerlocator是一个控制器


我还注意到表单帖子似乎不能正常工作,所以现在它可以使用了。

从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版。查看更多