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
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