Lecture de l’agent utilisateur avec C #

J’ai le code suivant qui lit le userAgent et fait une logique basée sur les valeurs appariées en utilisant indexOf:

Ssortingng userAgent; userAgent = Request.UserAgent; // If it's not IE if (userAgent.IndexOf("MSIE")  -1) { return RedirectToAction("Index", "Home", new { area = "Dashboard" }); } // It's just IE else { return View("ChromeFrame"); } 

S’il s’agit d’IE, la vue doit être renvoyée ou si son IE contient ChromeFrame, il doit alors être redirigé et c’est un autre navigateur. Il doit également être redirigé.

Je pense que le problème est avec la partie > 0 du code. Quelle est la bonne façon de comparer les informations? Merci.

Utilisez simplement la méthode contient , ce qui rendra votre code moins crypté et moins sujet aux erreurs.

 if (userAgent.Contains("MSIE")) { return RedirectToAction("Index", "Home", new { area = "Dashboard" }); } 

Vous devriez utiliser > -1 , sinon cela ne fonctionnera pas si la sous-chaîne est au début de la chaîne.

IndexOf renvoie -1 si la chaîne n’est pas trouvée … Consultez MSDN pour référence.