Ошибка компиляции ASP.NET и C # при попытке создать новый объект из класса - PullRequest
0 голосов
/ 01 октября 2010

У меня есть эта простая страница ASP.NET здесь:

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

С этим простым классом:

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

ОБНОВЛЕНИЕ ОБНОВЛЕНИЕ:

Ошибка парсера

Описание: Ошибка разбора ресурса, необходимого для обслуживания этого запроса. Просмотрите исходный файл и измените его, чтобы исправить эту ошибку.

Сообщение об ошибке Parser: не удается найти тип CoconutTree.One

Ответы [ 2 ]

2 голосов
/ 01 октября 2010

Я бы просто сделал Page_Load в коде позади и покончил бы с этим.Я не знаю, что происходит с моно-компилятором, используя импорт страниц в файле aspx.

Вот пример использования кода:

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

Затем в User.В файле aspx.cs вам понадобится класс User в пространстве имен. Пример.

0 голосов
/ 01 октября 2010

1) Вы должны опубликовать фактическое сообщение об ошибке.
2) Не просите людей делать за вас домашнее задание.
3) Хорошо определить два класса в одном файле .cs.

Извините, я был легкомысленным. Проблема в том, что тег "src" в директиве Page не имеет смысла. Движок ASP.NET не знает, где определяется CoconutTree. Используйте CodeFile для динамически скомпилированных страниц.

...