Avatar billede tokelil Nybegynder
27. juli 2006 - 12:44 Der er 7 kommentarer og
1 løsning

Include af filer / Strukturering af klasser

Jeg er ved at omskrive mit website til asp.net 1.1, men er løbet ind i lidt strukturerings problemer, som jeg en kan give et hint til at løse...

Så vidt jeg kan finde ud af kan jeg (desværre ikke) benytte master pages i .net 1.1, men det ville sådan set heller ikke løse mine problemer.


Det jeg gerne vil have er at alle mine sider har en codebehind fil. (sidenavn.aspx.cs... hvilket jo ikke er noget problem) Men alle de sider skal nedarves fra en fælles klasse (MyPage f.eks.), som nedarver fra Page, som ligger i fil for sig selv. (I den fil vil der også være andre fælles klasser (DB etc.), som de forskellige sider skal have adgang til)

Mit problem er at jeg pt. har alt min codebehind i en fil for alle siderne, hvilket jo er pænt uoverskueligt, da jeg kun kan finde ud af at have en codebehind fil per .aspx side.

Så jeg vil have:
- mypage.aspx.cs
- side1.aspx
  - side1.aspx.cs (klasse nedarvet fra klassen i mypage.asp.xs)
- side2.aspx
  - side2.aspx.cs (klasse nedarvet fra klassen i mypage.asp.xs)


(Håber min forklaring giver mening. Jeg har sikkert overset et eller andet helt basalt. >< Koder normalt mest C/C++, hvor jeg bare ville include filerne)
Avatar billede mrbonus Novice
27. juli 2006 - 12:49 #1
Lidt forvirrende, men here goes.

Du kan lave en klasse, dom nedarver fra System.Web.Forms.Page, f.eks MyPage, alle dine sider kan så nedarve fra MyPage istedet for Page.

Men din MyPage skal ikke være en aspx fil, det skal bare være en almindelig klasse.

Tror det var det du manglede, men er lidt i tvivl
Avatar billede arne_v Ekspert
27. juli 2006 - 12:50 #2
hvis mypage.aspx.cs compiles til mypage.dll som ligges i bin dir kan alle
dine code behind klasser sagtens arve fra den
Avatar billede tokelil Nybegynder
27. juli 2006 - 13:45 #3
mrbonus: Det er allerede det jeg gør... Problemet er at arve fra en klasse der ligger i en anden fil.

arne_v: Jeg skal altså compile til dll for at det kan lade sig gøre? (Og bruge using til at includere mit namespace) Virker lidt "kompliceret" for noget der umiddelbart er simpelt? Ved du om man evt. kan få VS2005 til selv at kompile og lægge det op på sitet?
Avatar billede arne_v Ekspert
28. juli 2006 - 02:55 #4
i 2005 burde du kunne ligge mypage.cs i app_code og så vil ASP.NET selv compile
Avatar billede arne_v Ekspert
11. september 2006 - 23:49 #5
tokelil>

Kommet videre ?
Avatar billede tokelil Nybegynder
27. september 2006 - 16:02 #6
Undskyld den lange svar tid, men jeg har været optaget af andre projekter i mellemtiden, så har ikke arbejdet på det de sidste 1½ måned. :/

Jeg fandt ud af at den server jeg skal bruge rent faktisk har .net 2.0, mens den server jeg testede på kun havde 1.1. Så jeg har valgt at bruge MasterPages i stedet.

I .net 2.0 skulle filer der ligger i app_code selv blive compilet, men jeg havde vist lidt svært ved at få det til at virke som jeg ville have det til. Jeg regner dog med at komme videre med projektet inden for den næste uges tid, så jeg vender lige tilbage.

Tak for hjælpen so far...
Avatar billede tokelil Nybegynder
21. november 2006 - 13:22 #7
Er endelig kommet videre.
Har valgt at have 1 hoved masterpage (menu, generelt layout etc.) + 1 nested masterpage per site section. Desuden har jeg en flok klasse filer liggende i app_code biblioteket,  så de selv blive kompileret og som ligger i mit namespace.

app_code mappen var klart tricket jeg ledte efter og det er ærgeligt (for brugervenligheden) at det ikke var tilgængelig i .net 1.1. Heldigvis opgradere alle mine hoteller til 2.0 gratis.

Tak for hjælpe arne_v, smid et svar.
Avatar billede arne_v Ekspert
21. november 2006 - 16:37 #8
ok
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
Kurser inden for grundlæggende programmering

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