它始终与else一起使用,即使txtUserName.Text =“Adm_A” 那是为什么?
If txtUserName.Text Like "Adm_?" Then
Response.Redirect("AdminLoggedIn.aspx")
Else
Response.Redirect("LoggedIn.aspx")
End If
答案 0 :(得分:1)
用于测试问题的简单控制台应用程序
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的服务器的区域设置和使用的选项比较
答案 1 :(得分:0)
试试这个:
If txtUserName.Text.Trim() Like "Adm_?" Then
答案 2 :(得分:0)
我认为这是因为问号是模式运算符。请检查http://msdn.microsoft.com/en-us/library/swf8kaxw(v=vs.71).aspx
您是否尝试过使用包含而不是像?
答案 3 :(得分:0)
如果txtUserName.Text.Trim()喜欢“Adm?”然后
答案 4 :(得分:0)
如何检查它是否以“Adm_”字符串开头:
If txtUserName.Text.StartsWith("Adm_") Then
Response.Redirect("AdminLoggedIn.aspx")
Else
Response.Redirect("LoggedIn.aspx")
End If