Laden...

Problem mit Codebehind

Erstellt von Golo Roden vor 20 Jahren Letzter Beitrag vor 20 Jahren 3.754 Views
Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 20 Jahren
Problem mit Codebehind

Hallo,

ich mache gerade meine ersten Schritte mit ASP .net und habe ein kleines Problem mit dem Codebehind-Feature ...

Ich habe folgende Dateien erstellt:

index.aspx:

<%@ Page Language="C#" AutoEventWireup="false" Codebehind="index.aspx.cs" Inherits="MyWebApp.Index" %>

<html>
  <head>
    <title>golohaas.de</title>
  </head>

  <body>
    <span id="Message" runat="server" />
  </body>
</html>

index.aspx.cs

using System;
using System.Web.UI;
using System.Web.UI.HtmlControls;

namespace MyWebApp
{
  public class Index : Page
  {
    private HtmlGenericControl Message;

    private void PageLoad()
    {
      Message.InnerHTML = "ASP .net mit Codebehind";
    }

    override protected void OnInit(EventArgs eventArgs)
    {
      this.Load += new System.EventHandler(PageLoad);
    }
  }
}

Versuche ich, die Seite zu laden, erhalte ich die Fehlermeldung, dass der Typ MyWebApp.Index nicht aufgelöst werden könne ... warum?

Ich verwende Mono 0.30 und als Webserver läuft XSP 0.9, ein VS .net steht mir derzeit leider zum Vergleich nicht zur Verfügung.

Habe ich einen Fehler im Code oder unterstützt Mono eventuell kein Codebehind? Obwohl sie ja angeblich seit 0.29 feature complete in Bezug auf ASP .net sind, weswegen ich eher an einen Fehler meinerseits glaube ...

Vielen Dank auf jeden Fall schon mal im Voraus,

Golo

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

Golo Roden Themenstarter:in
4.207 Beiträge seit 2003
vor 20 Jahren

So, Probleme gelöst ... es waren gleich ein paar. Falls irgendwer irgendwann mal die selben Probleme haben sollte, daher hier kurz, was falsch war:*Die PageLoad hatte die falsche Signatur für den entsprechenden Delegate *In der OnInit fehlte der Aufruf der entsprechenden Methode der Basisklasse *Die Variable Message muss protected sein, sonst wird sie nicht gefunden *Die Methode InnerHTML gibt's nicht, sie heißt InnerHtml *Die .aspx.cs-Datei muss händisch kompiliert werden (ich dachte bisher immer, der Server übernimmt das) *Die aspx.cs muss als library kompiliert werden *Die aspx.dll muss dann in ein entsprechendes Unterverzeichnis namens bin

Es mag sein, dass VS .net einem da vieles abnimmt und erleichtert, aber wenn man es wie ich alles zur Not auch per Hand können will, kommt man um diesen Weg mit den entsprechenden Stolperfallen halt nicht herum ...

Viele Grüße,

Golo

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de