Чтение userAgent с C # - PullRequest
       2

Чтение userAgent с C #

7 голосов
/ 27 января 2012

У меня есть следующий код, который читает 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 частью кода.Как правильно сравнивать информацию?Спасибо.

Ответы [ 3 ]

8 голосов
/ 27 января 2012

Просто используйте содержит метод , который сделает ваш код менее загадочным и менее подверженным ошибкам.

if (userAgent.Contains("MSIE"))
{
    return RedirectToAction("Index", "Home", new { area = "Dashboard" });
}
1 голос
/ 27 января 2012

IndexOf возвращает -1, если строка не найдена ... см. MSDN для справки.

1 голос
/ 27 января 2012

Вы должны использовать > -1, иначе он не будет работать, если подстрока находится в начале строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...