2011-05-28 57 views
3

在正常asp.net以下工作檢測瀏覽器:與asp.net MVC2

private float getInternetExplorerVersion() 
{ 
    // Returns the version of Internet Explorer or a -1 
    // (indicating the use of another browser). 
    float rv = -1; 
    System.Web.HttpBrowserCapabilities browser = Request.Browser; 
    if (browser.Browser == "IE") 
    rv = (float)(browser.MajorVersion + browser.MinorVersion); 
    return rv; 
} 

但在asp.net MVC2在給出錯誤 「System.Web.HttpBrowserCapabilities瀏覽器=的Request.Browser;」:

不能鍵入 'System.Web.HttpBrowserCapabilitiesBase' 隱式轉換爲 'System.Web.HttpBrowserCapabilities'

感謝 ARNAB

回答

6

這因爲Browser屬性的類型是HttpBrowserCapabilitiesBase而不是HttpBrowserCapabilities。因此,無論使用隱var或指定適當的類型:

float rv = -1; 
var browser = Request.Browser; 
if (browser.Browser == "IE") 
    rv = (float)(browser.MajorVersion + browser.MinorVersion); 

或者如果你喜歡打字大量的代碼:

float rv = -1; 
System.Web.HttpBrowserCapabilitiesBase browser = Request.Browser; 
if (browser.Browser == "IE") 
    rv = (float)(browser.MajorVersion + browser.MinorVersion);