【发布时间】:2010-11-25 13:12:32
【问题描述】:
我的页面中有以下代码,尽管案例数量要大得多,但它运行良好。我需要在其他选择中使用完全相同的案例列表,但我不想在所有地方都重复完全相同的代码。
我有这个:
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
理想情况下我想要这样的东西
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
有什么想法吗?
编辑:
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
在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
这种工作,但有一个小问题。我必须加载页面两次才能更改电话号码(或者电话号码显示为之前加载时应该完成的)。希望这是有道理的……这是相当奇怪的行为。
【问题讨论】:
-
如果您在同一页面请求中设置(发送)cookie,您可能会遇到此问题?或者可能是视图状态/数据绑定问题,具体取决于您对电话号码的处理方式。尝试调试页面或仅写入响应流以查看它何时获取日期。 IE。 Response.Write("Number = " + freeCallNumber);
标签: asp.net vb.net select-case