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 を実行するサーバーのロケールと、使用する Option Compare にも注意してください。
これを試して:
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
これは、疑問符がパターン演算子であるためだと思います。http://msdn.microsoft.com/en-us/library/swf8kaxw(v=vs.71).aspxを確認してください。
like の代わりに contains を使用してみましたか?
これを試してもらえますか
If txtUserName.Text.Trim() のように「Adm?」それで