qal*_*ver 20 c# mobile asp.net-mvc-3
我想要实现的是简单的; 在我的Web应用程序中的所有视图中,我只有两个剃刀视图,我为他们创建了一个移动版本.因此,如果他们从移动设备访问应用程序,我需要将用户重定向到这些视图.我在控制器级别上尝试了以下操作,但是当我在不同的移动设备上运行测试时,它没有重定向用户: -
if (Request.Browser.IsMobileDevice)
{
return View("MobileStudentStartAssessment");
}
else {
return View("StudentStartAssessment");
}
Run Code Online (Sandbox Code Playgroud)
那么我可以采用另一种可以检测大多数移动设备的方法吗?谢谢
BFr*_*ree 26
您可以使用该Request.Browser.IsMobileDevice
物业.
dle*_*lev 18
假设您的移动视图适用于所有移动设备(而不是具有特定于设备的视图),您可以检查用户代理字符串以查看应返回的视图.这只是一个例子,但应该让你走得很远:
private static string[] mobileDevices = new string[] {"iphone","ppc",
"windows ce","blackberry",
"opera mini","mobile","palm",
"portable","opera mobi" };
public static bool IsMobileDevice(string userAgent)
{
// TODO: null check
userAgent = userAgent.ToLower();
return mobileDevices.Any(x => userAgent.Contains(x));
}
Run Code Online (Sandbox Code Playgroud)
然后,在您的控制器操作中,您可以调用:
if (MobileHelper.IsMobileDevice(Request.UserAgent))
{
// Return mobile view
}
Run Code Online (Sandbox Code Playgroud)
如果您仍然发现它无法识别您的移动浏览器,请检查调试器中的用户代理字符串,看看是否有可以使用的标识符.
Dan*_*usk 12
我使用nuget的51degrees.mobi包.这在检测所有不同的移动设备时更准确.它马上工作了.
当浏览器是移动设备时,我将其重定向到其他区域.
我还建议阅读史蒂夫桑德森博客的主题.
归档时间: |
|
查看次数: |
52876 次 |
最近记录: |