[Gelöst] [ASPX] Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

Maliko

Vormals Nightstalker
Hi,

ich habe an euch mal eine Frage. Ich habe übers Wochenende die Hausaufgabe bekommen, das ich eine Webapplikation erstellen soll, welche einen Sessionstate nutzt. Das Problem ist allerdings das ich es nicht hinbekomme.

Hier der C# Code meiner default.aspx:
Code:
public partial class _default : System.Web.UI.Page
    {
        String noten;

        protected void Page_Load(object sender, EventArgs e)
        {
            tbox_einzelwert.Focus();
            if (IsPostBack != false)
            {
                noten = Session["Notes"].ToString();
            }
        }

        protected void btn_dazu_Click(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append(noten);
            sb.Append(tbox_einzelwert.Text + ";");
            noten = sb.ToString();
            Session["Notes"] = noten;
            Label1.Text = Session["Notes"].ToString();
        }

        protected void btn_auswerten_Click(object sender, EventArgs e)
        {
            Response.Redirect("ergebnis.aspx");
        }
    }

Bei noten = Session["Notes"].ToString(); haut er mir aber immer die Fehlermeldung "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt." um die Ohren. Kann mir vielleicht jemand sagen was ich falsch mache? Weil bei der ergebnis.aspx funktioniert es so.

Hier zur Vollständigkeit noch der C# Code der Ergebnis.aspx:

Code:
public partial class ergebnis : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            String noten = Session["Notes"].ToString();
            String[] einzeln = noten.Split(';');
            Int32 gesamt = 0;
            Int32 mittel = 0;
            Int32 min = 0;
            Int32 max = 0;
            Int32 forCounter = 0;

            for (Int32 i = 0; i < einzeln.Length - 1; i++)
            {
                gesamt += Int32.Parse(einzeln[i]);

                if (forCounter == 0)
                {
                    min = Int32.Parse(einzeln[i]);
                    max = Int32.Parse(einzeln[i]);
                }

                if (min > Int32.Parse(einzeln[i]) && forCounter != 0)
                {
                    min = Int32.Parse(einzeln[i]);
                }

                if (max < Int32.Parse(einzeln[i]))
                {
                    max = Int32.Parse(einzeln[i]);
                }
                forCounter++;
            }

            mittel = gesamt / forCounter;

            MittelwertWert.Text = mittel.ToString();
            MittelwertNote.Text = AusgabeNote(mittel);
            MinNoteWert.Text = min.ToString();
            MinNoteText.Text = AusgabeNote(min);
            MaxNoteWert.Text = max.ToString();
            MaxNoteText.Text = AusgabeNote(max);
            p_auswertung.Visible = true;
        }

        private String AusgabeNote(int prozent)
        {
            if (prozent < 29)
            {
                return "ungenügend";
            }
            else if (prozent < 50 && prozent >= 29)
            {
                return "mangelhaft";
            }
            else if (prozent < 67 && prozent >= 50)
            {
                return "ausreichend";
            }
            else if (prozent < 81 && prozent >= 67)
            {
                return "befriedigend";
            }
            else if (prozent < 92 && prozent >= 81)
            {
                return "gut";
            }
            else if (prozent >= 92)
            {
                return "sehr gut";
            }

            return null;
        }
    }

Ich wäre euch sehr dankbar, wenn mir da jemand weiterhelfen könnte.

Lg Maliko
 
Zuletzt bearbeitet:
Ich hab gerade den Fehler selbst gefunden. Falls mal jemand ein ähnliches Problem hat, sollte er mal schauen ob die Session überhaupt existiert und nicht null ist. Das war bei mir der Fall. Ich hab die if Abfrage mit dem PostBack einfach noch um ein Session["Notes"] != null ergänzt und schon funktionierte es (der PostBack war dadurch übrigens auch überflüssig).
 
Oben