Avatar billede pladekusken Nybegynder
26. november 2003 - 20:57 Der er 21 kommentarer og
1 løsning

cs og aspx (Webmatrix .net Framework 1.1)

Hej allesammen,


Jeg er netop begyndt at 'lege' med asp.net og anvender WebMatrix...

Har dog vanskeligheder med at koble cs filen og aspx filen, så jeg kan anvende mine klasser i en webform ...

- Er der nogen der hurtigt kan give en løsning uden at anvende kompilerede filer i /bin ???
- Jeg har nemlig intet bin bibliotek og vil helst undgå det...

Jeg vedlægger eksempel nedenfor:

///////////////////////////////////////////////////////
// custTable.cs
///////////////////////////////////////////////////////
namespace test {
    using System;
    using System.Web.UI;

    public class custTable : Page
    {
        string  sCustAccount;

        public custTable(){}

        public string CustAccount(){
            return "CustAccount";}
    }
}


///////////////////////////////////////////////////////
// customer.aspx
///////////////////////////////////////////////////////

//////////
// CODE:
//////////
void Button1_Click(object sender, EventArgs e)
{
    custTable  _custTable;

    _custTable = new custTable();

    // TextBox1.Text = "test";

    TestBox.Text = _custTable.CustAccount();
}

//////////
// ALL:
//////////
<%@ Page Language="C#" ClassName="customer" %>
<script runat="server">

    void Button1_Click(object sender, EventArgs e)
    {
        custTable  _custTable;
   
        _custTable = new custTable();
   
        // TextBox1.Text = "test";
   
        TestBox.Text = _custTable.CustAccount();
    }

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <p>
            <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
        </p>
        <p>
            <asp:Button id="Button1" onclick="Button1_Click" runat="server" Text="Button"></asp:Button>
        </p>
        <!-- Insert content here -->
    </form>
</body>
</html>
Avatar billede pladekusken Nybegynder
26. november 2003 - 20:58 #1
Får forresten følgende kompileringsfejl via serveren:

Compiler Error Message: CS0246: The type or namespace name 'custTable' could not be found (are you missing a using directive or an assembly reference?)

Source Error:



Line 4:      void Button1_Click(object sender, EventArgs e)
Line 5:      {
Line 6:          custTable  _custTable;
Line 7: 
Line 8:          _custTable = new custTable();
Avatar billede repsak Nybegynder
26. november 2003 - 21:05 #2
virkede det?
Avatar billede pladekusken Nybegynder
26. november 2003 - 21:16 #3
Nej... Desværre erstattede øverste linie med:
<%@ Page Language="C#" Inherits="custTable" Src="custTable.cs" %>

-> Følgende kompileringsfejl:

Parser Error Message: The base type 'custTable' does not exist in the source file 'custTable.cs'.

Source Error:


Line 1:  <%@ Page Language="C#" Inherits="custTable" Src="custTable.cs" %>
Line 2:  <script runat="server">
Line 3:
 

 
Jeg har ellers husket at erklære attributter og metoder for protected, som du tidligere bemærkede...

cs filen ser nu således ud:

///////////////////////////////////////////////////////
// custTable.cs
///////////////////////////////////////////////////////
namespace test {
    using System;
    using System.Web.UI;

    public class custTable : Page
    {
        protected string  sCustAccount;

        protected custTable(){}

        protected string CustAccount(){
            return "CustAccount";}
    }
}
Avatar billede pladekusken Nybegynder
26. november 2003 - 21:19 #4
Jeg har vedlagt det komplette indhold af custTable.cs (se ovenfor)
Avatar billede repsak Nybegynder
26. november 2003 - 21:19 #5
<%@ Page Language="C#" Inherits="test.custTable" Src="custTable.cs" %>
Avatar billede pladekusken Nybegynder
26. november 2003 - 21:23 #6
Desværre.

Får følgende kompilering:

Compiler Error Message: CS0246: The type or namespace name 'custTable' could not be found (are you missing a using directive or an assembly reference?)
Source Error:
Line 4:      void Button1_Click(object sender, EventArgs e)
Line 5:      {
Line 6:          custTable  _custTable;
Line 7: 
Line 8:          _custTable = new custTable();
Avatar billede repsak Nybegynder
26. november 2003 - 21:27 #7
nej, så har du misforstået mig.
<%@ Page Language="C#" Inherits="test.DIN_KLASSE_SOM_ARVER_FRA_PAGE" Src="klasser.cs" %>

klassen custTable skal ligge i samme fil (klasser.cs)
Avatar billede pladekusken Nybegynder
26. november 2003 - 21:33 #8
aspx:
<%@ Page Language="C#" Inherits="test.custTable" Src="classes.cs" %>

test = namespace
klasse = custTable
cs fil = classes.cs

- Stadig samme kompileringsfejl som ovenfor :-(
Avatar billede repsak Nybegynder
26. november 2003 - 21:36 #9
hvilken klasse arver fra Page?
Avatar billede repsak Nybegynder
26. november 2003 - 21:37 #10
iøvrigt skal Button1_Click være protected
Avatar billede pladekusken Nybegynder
26. november 2003 - 21:40 #11
- Det gør custTable
(public class custTable : Page)

Filen classes.cs komplette indhold...

// classes.cs
//
namespace test {
    using System;
    using System.Web.UI;

    public class custTable : Page
    {
        protected string  sCustAccount;

        protected custTable(){}

        protected string CustAccount(){
            return "CustAccount";}
    }
}
Avatar billede pladekusken Nybegynder
26. november 2003 - 21:41 #12
Jeg har øget pointtallene: 200
Avatar billede repsak Nybegynder
26. november 2003 - 21:48 #13
ok, hvor hulen ligger Button1_Click så henne af?????
Avatar billede pladekusken Nybegynder
26. november 2003 - 21:48 #14
er hermed ændret til:
protected void Button1_Click(object sender, EventArgs e)

men nu får jeg denne kompilering:
Compiler Error Message: CS0246: The type or namespace name 'TestBox1' could not be found (are you missing a using directive or an assembly reference?)
Source Error:
Line 12:        //TestBox1.Text = _custTable.CustAccount();
Line 13:   
Line 14:        TestBox1.Text = "1111"; //this.CustAccount();  <-------
Line 15:    }
Line 16:
Avatar billede pladekusken Nybegynder
26. november 2003 - 21:51 #15
Button1_Click ligger i aspx filen (se i starten af indslaget, al kode vedlagt)

Kan man ikke bare inkludere et helt nameSpace i aspx filen og bruge klasserne fra cs filen ???
Avatar billede repsak Nybegynder
26. november 2003 - 22:01 #16
Hmm jeg har også dårlig erfaring med at lave det du vil, men vil du ikke forklare mig hvorfor du ikke vil kompilere???
Avatar billede pladekusken Nybegynder
26. november 2003 - 22:04 #17
Det har jeg umiddelbart ikke mulighed for med webMatrix...

Jeg ville da også kompilere når jeg engang er færdig, men det er jeg ikke foreløbig og vil ikke sidde og kompilere og flytte filer før hver test.
Avatar billede repsak Nybegynder
26. november 2003 - 22:12 #18
hmm stenet at det ikke virker :-S
Avatar billede pladekusken Nybegynder
26. november 2003 - 22:14 #19
Jeps...

Jeg har set et andet indlæg... Men hmm virker ikke helt !

Ved det kan lade sig gøre. Men hvordan !?!
Avatar billede pladekusken Nybegynder
26. november 2003 - 23:02 #20
LØSNING:

<%@ Page Language="c#" Src="classes.cs" autoeventwireup="false" Inherits="test.custTable" %>
<%@ import Namespace="test" %>

Bemærk import Namespace...

Så virker det...

Kaldet i aspx skal dog ikke være _custTable.custAccount() -> men this.custAccount().

Hvis andre ideer der er bedre eller noget smartere er de velkommen til at sige til...
Avatar billede pladekusken Nybegynder
26. november 2003 - 23:05 #21
repsak laver du ikke et indlæg af typen svar
- så jeg kan give dig nogle point ;-)
Avatar billede repsak Nybegynder
27. november 2003 - 09:27 #22
tjoe, hvis du synes at jeg har hjulpet :-)
(ved nærmere eftertanke så burde jeg have vidst det med import namesoace - men det er jo let nok at sige bagefter ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester