04. november 2007 - 19:57Der er
9 kommentarer og 1 løsning
Bruge funktion i app_code mappen
Hej
Jeg har lavet en fil der hedder AgeScript.vb som ligger i min app_code mappe..
I den fil har jeg følgende:
Imports Microsoft.VisualBasic
Public Class AgeScript
Public Sub GetAge(ByVal BirthDate As DateTime) ' get the difference in years Dim GetAge As Integer = DateTime.Now.Year - BirthDate.Year ' subtract another year if we're before the ' birth day in the current year If DateTime.Now.Month < BirthDate.Month Or (DateTime.Now.Month = BirthDate.Month And DateTime.Now.Day < BirthDate.Day) Then GetAge = GetAge - 1 End If End Sub End Class
Så vil jeg så bruge funktionen på en af mine side på følgende måde:
GetAge("19-08-1987 00:00:00")
Men den skriver at "Name 'GetAge' is not defined"
Hvad skal man gøre for at den kan se de funktioner der ligger i app_code mappen??
som de første to linier. Det får VB.NET til at opføre sig som et rigtigt programmeringssprog, der vil give dig rigtige informationer om fejl. Uden de to linier kan man få rodet sig ud i noget værre kode, uden at vide af det. De betyder at der kommer stærkt typetjek på, og at variabler skal erklæres.
Public Function GetAge(ByVal BirthDate As DateTime) As Integer Dim Age As Integer = DateTime.Now.Year - BirthDate.Year If DateTime.Now.Month < BirthDate.Month Or (DateTime.Now.Month = BirthDate.Month And DateTime.Now.Day < BirthDate.Day) Then GetAge = Age - 1 End If Return Age End Function End Class
På en af dine sider smider du en label ud på din form for at få vist outputtet. I koden her kalder du din Function sådan her, f.eks. i dit Page_Load-event:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim a As New AgeScript Dim result As Integer = a.GetAge("19-08-1987 00:00:00") Label1.Text = result End Sub
Som erikjacobsen anbefaler er du nødt til at tilføje lidt i kaldet af din Function af hensyn til dine variabler:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim a As New AgeScript Dim result As Integer = a.GetAge(CDate("19-08-1987 00:00:00")) Label1.Text = CType(result, String) End Sub
- Det kan du godt, men det optimale vil være at kigge på Forms Authentication, membership og profiles. Her definere du f.eks. i din web.config hvilke sider og mapper du vil have beskyttet af login alt efter hvilke rettigheder du har givet den der er logget ind.
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.