2010-10-01 6 views
0

J'ai cette page ASP.NET simple ici:ASP.NET et C# erreur de compilation tout en essayant d'instancier un nouvel objet d'une classe

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Tree.aspx.cs" Inherits="CoconutTree.One" %>  
<html>  
<head>  
<title>Planting Trees</title>  
<script runat="server">  
protected void Page_Load(Object Source, EventArgs E)  
{  
string msg = "Let's plant some trees!<br/>";  

// Create a new Tree  
Tree tree1 = new Tree();  

msg += "I've created a tree with a height of " +  
tree1.height + " metre(s).<br/>";  

tree1.Grow(3);  

msg += "After a bit of growth, it's now up to " +  
tree1.height + " metre(s) tall.<br/>";  

msg += "Maybe eventually it will grow to 10 meters tall!</br>…<br/>"; 

tree1.Grow(7); 

msg += "*15 years later*<br/>Let's check out our tree's height now! It's now up to " + tree1.height + " meter(s) tall! Awesome!<br/>"; 

Output.Text = msg; 

string msg2 = "Let's plant some coconut trees!<br/>"; 

// Create a new Tree 
CoconutTree coconutTree1 = new CoconutTree(); 

msg2 += "I've created a tree with " + coconutTree1.numNuts + " coconuts.<br/>"; 

coconutTree1.GrowNut(10); 

ms2 += "I've now grown " + coconutTree1.numNuts + " coconuts on our tree.<br/>"; 

Output2.Text = msg2; 

    } 
</script> 

</script>  
</head>  
<body>  
<p><asp:label runat="server" id="Output" /></p> 
<p><asp:label runat="server" id="Output2" /></p> 
</body>  
</html> 

Avec cette classe simple:

namespace One 
{ 
    public class Tree { 

    public int height = 0; 

    public void Grow(int heightToGrow) { 
     height += heightToGrow; 
    } 
    } 
    public class CoconutTree : Tree { 

    public int numNuts = 0; //Number of coconuts 

    public void GrowNut(int numberToGrow) { 
     numNuts += numberToGrow; 
    } 

    public void PickNut(int numberToPick) { 
     numNuts -= numberToPick; 
    } 
    } 
} 

MISE à JOUR dE MISE à JOUR:

Parser erreur

Description: Erreur lors de l'analyse d'une ressource requise pour traiter cette demande. Vérifiez votre fichier source et modifiez-le pour corriger cette erreur.

Parser Message d'erreur: Impossible de trouver le type CoconutTree.One

+1

Quelle est l'erreur du compilateur? – tster

+0

BTW, vous pouvez avoir plusieurs classes dans un seul fichier, donc je ne pense pas que ce soit le problème. – tster

+0

WOW! Mon mauvais, désolé à ce sujet. – Qcom

Répondre

2

Je voudrais simplement faire le Page_Load dans le code et en finir avec. Je ne sais pas ce qui se passe avec le compilateur mono en utilisant les importations de pages dans le fichier aspx.

Voici un exemple d'utilisation du code derrière:

<%@ Page Title="" Language="C#" AutoEventWireup="true" 
    CodeBehind="User.aspx.cs" Inherits="Example.User" %> 

Puis dans le fichier User.aspx.cs vous auriez besoin d'une classe utilisateur dans l'espace de noms Exemple.

+0

Désolé, je suis très nouveau à ce sujet, par le code derrière, voulez-vous dire de mettre le code Page_Load dans un fichier séparé et l'appeler avec Code Behind? – Qcom

0

1) Vous devez envoyer le message d'erreur réelle.
2) Ne demandez pas aux gens de faire vos devoirs pour vous.
3) Définir deux classes dans un fichier .cs est très bien. Désolé, j'étais désinvolte. Le problème est que la balise "src" dans la directive Page est vide de sens. Le moteur ASP.NET n'a aucune idée de l'endroit où CoconutTree est défini. Utilisez CodeFile pour les pages compilées dynamiquement.

+2

Aucun de ceux-ci n'est vraiment une réponse; ils devraient tous être des commentaires. Le dernier est * le plus proche * d'être une réponse, mais c'est tout. –

+1

Désolé, j'étais désinvolte. Le problème est que la balise "src" dans la directive Page est vide de sens. Le moteur ASP.NET n'a aucune idée de l'endroit où CoconutTree est défini. Utilisez CodeFile pour les pages compilées dynamiquement. – Bryan

+0

@Brian: Ok - Je vous suggère de modifier cela dans la réponse alors, car cela serait vraiment * utile *. –

Questions connexes