Ich habe den folgenden Code in meiner Seite, der funktioniert, obwohl die Anzahl der Fälle viel viel größer ist. Ich muss genau die gleiche Liste von Fällen in anderen Auswahlen verwenden, aber ich möchte nicht überall genau das gleiche Code-Duplikat haben.Deklarieren einer Fallliste, die an mehr als einem Ort verwendet werden kann
Ich habe dies:
Select Case Request.Cookies("LatestRefer").Value
Case "EZ12"
freeCallNumber = "0800 111 1111"
Case "EW56"
freeCallNumber = "0800 222 2222"
Case "AT34"
freeCallNumber = "0800 333 3333"
Case Else
freeCallNumber = "0800 444 4444"
End Select
Ich möchte im Idealfall so etwas wie dieses
Select Case Request.Cookies("cookie1").Value
myGlobalListOfCases()
End Select
Select Case Request.Cookies("cookie2").Value
myGlobalListOfCases()
End Select
Select Case Request.Cookies("cookie3").Value
myGlobalListOfCases()
End Select
Irgendwelche Ideen?
EDIT:
Private Function getFreeCallNumber(ByVal value As String) As String
Select Case value
Case "EZ12"
Return "0800 111 1111"
Case Else
Return "0800 222 2222"
End Select
End Function
Und im page_load:
If Not Request.Cookies("cookie1") is Nothing Then
freeCallnumber = Me.getFreeCallNumber(Request.Cookies("cookie1").Value)
Else
freeCallnumber = Me.getFreeCallNumber(Request.Cookies("cookie2").Value)
End If
Diese Art von Arbeiten, aber es gibt ein kleines Problem. Ich muss die Seite zweimal laden, damit die Telefonnummer geändert werden kann (oder die Telefonnummer erscheint wie beim vorherigen Laden). Hoffe, das macht Sinn ... es ist ziemlich merkwürdiges Verhalten.
Vielleicht erhalten Sie dieses Problem, wenn Sie die Cookies in der gleichen Seitenanforderung festlegen (senden)? Oder vielleicht ist es ein ViewState/Databind-Problem, je nachdem, was Sie mit der Telefonnummer machen. Versuchen Sie, die Seite zu debuggen, oder schreiben Sie einfach in den Antwortstream, um zu sehen, wann das Datum abgerufen wird. I.e. Response.Write ("Nummer =" + freeCallNumber); –