即使 txtUserName.Text = "Adm_A" 它总是与 else 一起使用,这是为什么呢?
If txtUserName.Text Like "Adm_?" Then
Response.Redirect("AdminLoggedIn.aspx")
Else
Response.Redirect("LoggedIn.aspx")
End If
一个简单的控制台应用程序来测试您的问题
Sub Main
Dim test = "Adm_AA"
CheckLike(test)
test = "Adm_A"
CheckLike(test)
test = "Adm_A " ' a space after the A'
CheckLike(test)
End Sub
Sub CheckLike(ByVal toCheck as string)
If toCheck Like "Adm_?" Then
Console.WriteLine("Matched")
Else
Console.WriteLine("Not Matched")
End If
End Sub
结果:
Not Matched
Matched
Not Matched
所以在你的弦中有些东西并不像你想象的那样。使用调试器并验证 if 语句及其参数。还要注意运行 webapp 的服务器的语言环境和使用的选项比较
我相信那是因为问号是一个模式运算符。请检查http://msdn.microsoft.com/en-us/library/swf8kaxw(v=vs.71).aspx
您是否尝试过使用包含而不是喜欢?
你能试试这个吗
如果 txtUserName.Text.Trim() 喜欢 "Adm?" 然后
尝试这个:
If txtUserName.Text.Trim() Like "Adm_?" Then
如何检查它是否以“Adm_”字符串开头:
If txtUserName.Text.StartsWith("Adm_") Then
Response.Redirect("AdminLoggedIn.aspx")
Else
Response.Redirect("LoggedIn.aspx")
End If