Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9236103
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 18, 20262026-06-18T07:12:31+00:00 2026-06-18T07:12:31+00:00

Summary I have an ASP.NET 3.5 website and a mobile detection method inside a

  • 0

Summary

I have an ASP.NET 3.5 website and a mobile detection method inside a C# class file inside my app_code folder. I want to call this method which sets a cookie, then switch my master page file if it’s a mobile device.

I’m using a method i got from the comment section down in this article: http://www.codeproject.com/Articles/34422/Detecting-a-mobile-browser-in-ASP-NET

This just seemed simpler than using the 51degrees method of detection since i didn’t really need a high level of detection, and i didn’t want to send them to a different URL, but rather just flip to a different masterpage, and the NuGet package which makes a nice easy install doesn’t work for ASP.NET 3.5.

The problem i’m at currently is with calling the method.

Here’s the Code

External app_code class

public static class fooBar // test method
{
    public static bool ean()
    {
        return true;
    }
}

public static class HttpRequestExt
{
    #region Private Fields

    // These regular expressions retrieved from http://detectmobilebrowser.com/ "Open source mobile phone detection".
    private static Regex MobileBrowsers = new Regex(@"android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino", RegexOptions.IgnoreCase | RegexOptions.Multiline);
    private static Regex MobileApps = new Regex(@"1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|e\\-|e\\/|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\\-|2|g)|yas\\-|your|zeto|zte\\-", RegexOptions.IgnoreCase | RegexOptions.Multiline);

    #endregion

    public const string ViewMobileSiteCookieName = "ViewMobile";

    /// <summary>
    /// Determines if the request emanated from a mobile-device client; 
    /// and stores the result in a cookie on the response.
    /// </summary>
    /// <param name="request"></param>
    /// <param name="Response"></param>
    /// <returns></returns>
    /// 
    public static bool IsMobileClient(this System.Web.HttpRequest request, System.Web.HttpRequest Response)
    {
        bool isMobile = false;
        bool isCookieSet = false;
        var viewMobileCookie = request.Cookies[ViewMobileSiteCookieName];

        if (viewMobileCookie != null && bool.TryParse(viewMobileCookie.Value, out isMobile))
        {
            isCookieSet = true;
        }
        else if (request.Browser.IsMobileDevice)
        {
            isMobile = true;
        }
        else if (request.ServerVariables["HTTP_X_WAP_PROFILE"].IsNotEmpty())
        {
            isMobile = true;
        }
        else if
            (
                request.ServerVariables["HTTP_ACCEPT"].IsNotEmpty()
                &&
                (
                    request.ServerVariables["HTTP_ACCEPT"].ToLower().Contains("wap")
                    || request.ServerVariables["HTTP_ACCEPT"].ToLower().Contains("wml+xml")
                )
            )
        {
            isMobile = true;
        }
        else if (request.ServerVariables["HTTP_USER_AGENT"].IsNotEmpty())
        {
            string userAgent = request.ServerVariables["HTTP_USER_AGENT"];
            isMobile = ((MobileBrowsers.IsMatch(userAgent) || MobileApps.IsMatch(userAgent.Substring(0, 4))));
        }

        // Store the result as a cookie.
        if (!isCookieSet)
            Response.Cookies.Add(new HttpCookie(ViewMobileSiteCookieName, isMobile.ToString()));

        return isMobile;
    }

    public static bool IsNotEmpty(this string instance)
    {
        return instance != null && instance.Length > 0;
    }
}

My call to it)

Right now im doing it on the page, but i figure i’ll do this in global.asax on session start?

sectionTitle.InnerHtml = fooBar.ean().ToString(); // test works
sectionTitle.InnerHtml = HttpRequestExt.IsMobileClient.ToString(); // compile error

Compile Error:

CS0119: ‘SWIC.HttpRequestExt.IsMobileClient(System.Web.HttpRequest, System.Web.HttpRequest)’ is a ‘method’, which is not valid in the given context

Do i have to somehow cast this to the current instance? Should i just be doing this differently all together?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-18T07:12:32+00:00Added an answer on June 18, 2026 at 7:12 am

    You’re trying to call a method like a property. Methods need parentheses:

    HttpRequestExt.IsMobileClient().ToString()
                                 ^^
    

    You’ll also have to call it on the current request, not just statically, as it is an extension method (which takes a parameter). E.g.:

    sectionTitle.InnerHtml = Page.Request.IsMobileClient(Page.Response).ToString();
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Summary: I have an ASP.NET MVC website in IIS named 'Website' using an AppPool
I have a validation summary inside a asp.net formview and the validators just don't
I have an asp.net treeview (acting as a remote file and folder browser). When
I am currently working on an ASP.NET MVC3 website. I have a simple authentication
I have an ASP.Net website which uses a MySQL database for the back end.
Summary We have an ASP.NET application that allows users to query a SQL Server
In summary : I have an ASP.NET web page that causes an AJAX postback
I have a custom ASP.NET button with an image element inside it (and an
SUMMARY: When browsing an ASP.NET website using Windows Explorer, popup windows do not borrow
Hey. We're building a large ASP.NET website, and have hired an external firm to

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.