使用C#读取userAgent
本文关键字:userAgent 读取 使用 | 更新日期: 2023-09-27 18:21:31
我有以下代码,它读取userAgent,并根据使用indexOf匹配的值执行一些逻辑:
String userAgent;
userAgent = Request.UserAgent;
// If it's not IE
if (userAgent.IndexOf("MSIE") < 0)
{
return RedirectToAction("Index", "Home", new { area = "Dashboard" });
}
// If it's IE BUT ChromeFrame
else if(userAgent.IndexOf("ChromeFrame") > -1)
{
return RedirectToAction("Index", "Home", new { area = "Dashboard" });
}
// It's just IE
else
{
return View("ChromeFrame");
}
如果它是IE,那么它应该返回视图,或者如果它的IE但包含ChromeFrame,那么它就应该重定向,如果它是另一个浏览器,那么它也应该重定向。
我认为问题出在代码的> 0
部分。比较信息的正确方式是什么?谢谢
只需使用contains方法,这将使您的代码不那么神秘,也不容易出错。
if (userAgent.Contains("MSIE"))
{
return RedirectToAction("Index", "Home", new { area = "Dashboard" });
}
您应该使用> -1
,否则如果子字符串位于字符串的开头,它将不起作用。
IndexOf
返回-1。。。请参阅MSDN以获取参考。