webForumDet fria alternativet

aspx vs code-behind

12 svar · 313 visningar · startad av P

PMedlem sedan jan. 20012 204 inlägg
#1

De sidor jag har gjort i aspdotnet hittills har jag använt mig av webmatrix och lagt min kod i dess ”KodFlik” dvs att koden kommer inom <script></script>. Sen har jag importerat klasser som jag har gjort som har hand om Databas-hanteringen genom ”import namespace”.

Det jag undrar om det är bästa att ha koden helt i separata filer och på det sättet skilja den från designen eller?
Om man importerar med

<%@ Page Language="VB" Src="KlassFilen.vb" Inherits="Klassen" %>

Kan man då använda samma som man använde kod i <script> eller måste man göra om någonting?

NickemannenMedlem sedan aug. 20003 575 inlägg
#2

Ja, i princip.

PMedlem sedan jan. 20012 204 inlägg
#3

i princip?

såg på asp.net ibuyportal eller vad den heter och de har en del kod i <script>...

NickemannenMedlem sedan aug. 20003 575 inlägg
#4

När du lägger det i CodeBehind så kan du komma åt dom funktionerna som ligger i den filen till alla aspx filer.

Du kan lätt ändra om på din andra design sida, Men ja det är ju också en smaksak hur man vill göra.

PMedlem sedan jan. 20012 204 inlägg
#5

Och hur gör ni?

juventus1Medlem sedan dec. 2000399 inlägg
#6

Alltid code-behind. Jag ser ingen anledning till att inte använda det.

PMedlem sedan jan. 20012 204 inlägg
#7

Kan ju vara bra om man ska publicera den på intranat eller dylikt så att man inte kan se själva koden...

Hmm ska testa att installera visual studio.

Finns det någon här som använder code-behind(Src) utan visual studio och har all kod i externa filer?

renholmMedlem sedan apr. 20012 266 inlägg
#8

P skrev:

Kan ju vara bra om man ska publicera den på intranat eller dylikt så att man inte kan se själva koden...

Koden brukar kunna läsas från dll-filerna utan problem, det ända är att namnen på variablerna inte är sig lika.

PaceMedlem sedan juni 20019 024 inlägg
#9

P skrev:

Finns det någon här som använder code-behind(Src) utan visual studio och har all kod i externa filer?

Jo.

PMedlem sedan jan. 20012 204 inlägg
#10

Pace - skriver du ingen kod i <script>?

PaceMedlem sedan juni 20019 024 inlägg
#11

Nej, förutom på:

* Sidor där det inte finns något innehåll (ska bara utföra vissa saker). Då kan jag skriva direkt i aspx-sidan. Men det har bara hänt en gång så länge, och är lite beroende på vad den ska åstadkomma. Aspx-koden (logiken ligger i ett eget namespace):

	Sub Page_Load(obj As Object, e As EventArgs)
		Dim BannerID As String = Request.QueryString("BannerID")
		Dim Direction As String = Request.QueryString("Dir")
		Dim ArticleID As String = Request.QueryString("ArticleID")
		Dim NewsID As String = Request.QueryString("NewsID")
		Dim FaqID As String = Request.QueryString("FaqID")
		Dim LinkID As String = Request.QueryString("LinkID")
		Dim Action As String = Request.QueryString("Action")

		Dim RedirectUrl As String
		Dim Sql As VoodooFilm.Data.SqlInjection
		Dim Redirect As New VoodooFilm.SiteFunctions.ContentRedirect

		If Sql.VerifyID(ArticleID) Then
			RedirectUrl = Redirect.Article(ArticleID)
		ElseIf Sql.VerifyID(LinkID) Then
			RedirectUrl = Redirect.Link(LinkID)
		ElseIf Sql.VerifyID(BannerID) Then
			Select Case Direction.ToLower()
				Case "out" : Direction = Redirect.BannerOut
				Case Else : Direction = Redirect.BannerIn
			End Select
			RedirectUrl = Redirect.Banner(BannerID, Direction)
		Else
			RedirectUrl = "/"
		End If

		'Response.Redirect(RedirectUrl)
		Response.Write("Url: " & RedirectUrl)
	End Sub

* Pagelets (user controls). Den koden skriver jag alltid inom <script> så länge det rör sig om properties som sätter värden (t ex labels) i pageleten. Skulle den behöva hämta data från en databas så lägger jag det separat i ett eget namespace, men jag har inte behövt det än så länge.

PMedlem sedan jan. 20012 204 inlägg
#12

Okej, har inte kllat så mycket på det men jag har lite problem med att få det att fungera.

I aspx sidan har jag lite text, lablar, datgrids etc
Om jag importerar med:

<%@ Page Language="VB" Src="KlassFilen.vb" Inherits="page1" %>

Sköts då alla subbar/funktioner av denna klass, typ såhär.

Public Class page1
   Inherits Page ' vad nu detta betyder
   Sub Page_Load(obj As Object, e As EventArgs)
   '  tex hur sätter jag ett värde på en label som jag har på sidan?
   label1.Text = "Jag gillar film!"
    
   End Sub
End Class

Känns nästan som om det är mer jobb än vad det ger....

PaceMedlem sedan juni 20019 024 inlägg
#13

Ja, så gör man.

Dessutom måste du deklarera alla labels, repeaters etc som publika variabler för att klassen ska komma åt dem.

Public Class page1 : Inherits Page
   Public label1 As Label
   ...

Inherits Page betyder att man ärver klassen System.Web.Page (tror jag det är), vilket är själva sidan. Aspx-sidorna ärver denna automatiskt.

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)