I have Getaway in my MVC3 application in Layout :
@if ((Request.Browser.Browser == "IE") && ((Request.Browser.MajorVersion == 7)))
{
//show some content
}
else
{
//show another content
}
I have many users complains (users with internet explorer 8). They see Internet explorer 7 content from my app.
What wrong with my way of detecting Internet explorer 7 version?
How can I be sure for 100% in my application that user have internet explorer 7 version?
May be this is specific OS problem?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
The issue is the HttpBrowserCapabilities aka Request.Browser class parses the userAgent header from the request which has information about the client (in your case the browser) which might not always be 100% reliable as user agents are easily changeable.
If you know what value MajorVersion is returning and it’s consistent enough you could possibly put a fix in for it. Alternatively you could try checking for browsers lower than IE8 instead (again though, not 100%) e.g.
@if ((Request.Browser.Browser == "IE") && ((Request.Browser.MajorVersion < 8)))
{
//show IE7 content
}
else
{
//show IE8+ content
}
Method 2
The version number needs to be specific for IE.
if (Request.Browser.Browser == "IE" && Request.Browser.Version == "7.0")
{
//Show IE 7 content
}
else
{
// Show other than IE7 content
}
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0