WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   baseClass (https://www.wn.se/forum/showthread.php?t=14159)

cliffjesus 2006-05-18 17:34

Hej!

Jag sitter och försöker lära mig hur man skapar en "baseclass" som ärver från System.Web.UI.Page och som sedan alla sidor i projektet ärver av, men jag får det inte att fungera.

Först har jag min basklass som heter baseClass.vb och ligger i App_Code foldern
Kod:

Public Class baseClass
  Inherits System.Web.UI.Page

  Public Function hej()
    Return "hej!"
  End Function
End Class

Sedan min code-behind fil index.aspx.vb
Kod:

Public Class index
  Inherits baseClass


  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Response.Write(hej())
  End Sub
End Class

och till sist min aspx sida
Kod:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="index.aspx.vb" Inherits="index" %>

Jag får felmedelandet:

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: ASPNET: Make sure that the class defined in this code file matches the 'inherits' attribute, and that it extends the correct base class (e.g. Page or UserControl).



Någon som ser vad som är fel, det är inte världens mest kluriga problem antar jag, men jag är helt ställd och hittar inget vettigt på google.

Tack på förhand

digiArt 2006-05-18 17:42

Public Function hej()

kanske ska vara

Public Function hej() As String

Jag är ingen vb-kille, men din första variant bör inte returnera någonting, medan den andra förväntas returnera en string. Vad gäller arven så ser jag (som C#-fantast) inget fel.

cliffjesus 2006-05-18 17:51

Jag har prövat utan någon funktion i också, med samma resultat, så tyvärr sitter det inte där.
Men tack ändå.

Det känns som om problemet borde sitta i hur page-taggen är utformad på aspx sidan, för där har jag inte sett några exempel på hur man skall göra med basklasser, så där är jag lite osäker på hur man gör.

Robert 2006-05-18 18:46

förutöver att digiArt har rätt så bör du tänka på att din response.write (vilket du inte bör använda enligt mig) har liksom inget sammanhang att skriva ut sig själv i.

Testa att göra något annat i funktionen istället eller varför inte testa nedanstående:

Du kan testa följande:
Kod:

Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
 *MyBase.Render(writer)

 *writer.Write("detta skrivs ut nedanför html-koden")
end sub

Ovanstående sub tar över sidans render event, låter mybase skriva ut sidan som vanligt, och lägger sedan till en textsträng till writer-objektet

Nu ser du iaf om din basklass fungerar...

cliffjesus 2006-05-18 20:03

Tyvärr fungerar inte detta heller.
Jag har även försökt utan några funktioner eller subrutiner alls och det fungerar inte, den verkar inte hitta de klasser jag skapar.

Hur använder man CodeFileBaseClass i page-taggen, skall man använda den alls?

Plus en antagligen dum fråga, måste man kompilera klasserna man använder sig av om man skapar egna och hur gör man då det?

martine 2006-05-18 20:25

Med risk för att bli betraktad som en gnällig gubbe:

cliffjesus: Ange vilket språk det handlar om i din rubrik så att man inte behöver läsa inlägg om någon man inte är intresserad av.

digiArt 2006-05-18 20:50

Citat:

Originally posted by cliffjesus@May 18 2006, 20:03
Tyvärr fungerar inte detta heller.
Jag har även försökt utan några funktioner eller subrutiner alls och det fungerar inte, den verkar inte hitta de klasser jag skapar.

Hur använder man CodeFileBaseClass i page-taggen, skall man använda den alls?

Plus en antagligen dum fråga, måste man kompilera klasserna man använder sig av om man skapar egna och hur gör man då det?

Använder du 2.0 av ramverket så har du en App_Code mapp som du kan lägga alla dina klassfiler i. Då behöver du inte kompilera dem separat. Men har du tänkt få dem att trilla ut i en egen dll så måste du kompilera och referera.

cliffjesus 2006-05-18 20:56

Citat:

Originally posted by martine@May 18 2006, 20:25
Med risk för att bli betraktad som en gnällig gubbe:
cliffjesus: Ange vilket språk det handlar om i din rubrik så att man inte behöver läsa inlägg om någon man inte är intresserad av.

Det missade jag, förlåt förlåt...


Alla tider är GMT +2. Klockan är nu 02:14.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson