Nicht Zugriff auf nicht-statisches Feld im statischen Kontext

Ich erhalte eine Fehlermeldung beim Programmieren in Visual Studio 2010, die besagt Cannot access non-static field _cf in static context, kann jemand bitte erklären, warum ich immer diese Meldung und wenn möglich, wie dieses Problem zu beheben?

CommonFunctions.cs

namespace WebApplication1.Functions
{
    public class CommonFunctions
    {
        public string CurrentUser()
        {
            string login = HttpContext.Current.User.ToString();
            string[] usplit = login.Split('\\');
            string name = usplit[1];
            return name;
        }
    }
}

Team.aspx.cs

namespace WebApplication1
{
    public partial class Team : System.Web.UI.Page
    {
        private readonly CommonFunctions _cf = new CommonFunctions();

        public string CurrentUser = _cf.CurrentUser();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(CurrentUser))
            {
                //Do stuff here
            }
            else
            {
                //Do other stuff here
            }
        }
    }
}

Kann ich die CurrentUser code direkt in die protected void Page_Load - Funktion, aber da muss ich wiederverwenden CurrentUser während des gesamten Projekts es scheint lächerlich, zu replizieren.

Jede Hilfe wäre sehr geschätzt 🙂

  • Google zeigt 1,670,000 Ergebnisse für die Suche nach deiner Fehlermeldung (z.B. "kein Zugriff auf nicht-statisches Feld im statischen Kontext", ohne Anführungszeichen) ein. Im Allgemeinen ist dies ein nützlicher trick: nehmen Sie Ihre Fehlermeldung, entfernen von Identifikatoren zu Ihrem spezifischen Programm (z.B. _cf) und feed der rest von Google. Extrem hoch sind die Chancen, dass Sie eine Antwort bekommen die Rechte zurück.
  • Warum mischst du UI.Seite mit ASP.MVC ? Wenn Sie benötigen Zugriff auf den Aktuellen Benutzer-Sitzung statt HttpContext. Ich schlage vor, Sie Lesen Standard-template-Projekt für ASP.MVC
InformationsquelleAutor iggyweb | 2014-08-28
Schreibe einen Kommentar