use*_*414 0 constants mismatch asp-classic query-string
使用常量值时,我有一个令人不安的问题.我有一个名为"test.asp"的简单页面,它将变量设置为常量,然后设置为查询字符串值(如果存在).然后一个选择案例检查变量是否与常量匹配并输出"匹配"消息.问题是asp无法识别查询字符串值何时与常量相同.我已经运行了2次尝试,"test.asp"和"test.asp?SortField = 1".第一次尝试按预期运行,但第二次尝试报告1与1不同.此页面的代码如下所示.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<head></head>
<body>
<%
const cSortFielda = 1
dim vSortField
vSortField = cSortFielda
if not isempty(Request("SortField")) then
vSortField = Request("SortField")
end if
select case vSortField
case cSortFielda
response.write "matched</br>"
case else
response.write "failed</br>"
response.write "vSortField = " & vSortField & "(" & asc(vSortField) & ") </br>"
response.write "cSortFielda = " & cSortFielda & "(" & asc(cSortFielda) & ") </br>"
response.write "vSortField = cSortFielda is " & (vSortField = cSortFielda) & "</br>"
end select
%>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我错过了一些明显的东西或者是错误的经典之作吗?
谢谢你的帮助.
您正在将字符串与数字进行比较.你需要确保它们是一致的.所以要么改变这一行:
const cSortFielda = 1
Run Code Online (Sandbox Code Playgroud)
至:
const cSortFielda = "1"
Run Code Online (Sandbox Code Playgroud)
或者改变这一行:
vSortField = Request("SortField")
Run Code Online (Sandbox Code Playgroud)
至:
vSortField = CLng(Request("SortField"))
Run Code Online (Sandbox Code Playgroud)
第一个示例将字符串与字符串进行比较,第二个示例将数字与数字进行比较.