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?
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
}
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
}