使用另一个字符串评估字符串变量并不进行评估。 ASP CLASSIC

时间:2013-01-31 08:40:56

标签: variables types asp-classic eval evaluation

我在很多页面中都有一系列大表单,所以我做了一些函数,当有人更新页面时应该填充表单字段,情况是这样的:

 <label class="radio inline"><input type="radio" name="imm_AriaCondizionata" value="s" <%=richecca("imm_AriaCondizionata","s")%>>Si </label>
 <label class="radio inline"><input type="radio" name="imm_AriaCondizionata" value="n" <%=richecca("imm_AriaCondizionata","n")%>>No </label>


function richecca(NomeCampo,sino)           
    if request(NomeCampo) <> "" then        
        if request(Nomecampo) = sino then 
            richecca = " checked "
        else
            richecca = ""
        end if
    else
        if eval(NomeCampo) = sino then
            richecca = " checked "
        else
            richecca = ""
        end if
    end if

end function

所以,它会检查请求中是否有一些值(都是formand querystring),如果没有,它会检查一个名称传递给函数的变量。

问题是,即使我把值放在变量中,它总是采用“else”分支。怎么可能......它是在评估另一种类型的刺痛吗? 我的意思是:

Dim imm_AriaCondizionata = "n"
richecca("imm_AriaCondizionata","n")

它返回第二个的“”,所以那个:

if eval(NomeCampo) = sino then
    richecca = " checked "
else
    richecca = ""
end if

这里如果我写一个response.write(eval(NomeCampo))和response.write(sino)我有一个值为“n”的摊位......我对此感到很生气......怎么样有可能吗?

1 个答案:

答案 0 :(得分:0)

if strcomp(eval(NomeCampo),sino,1) = 0 then
richecca = " checked "
else
    richecca = ""
end if

我终于找到了这个strcomp !!!这使得两个变量的比较二进制或文本!

http://www.w3schools.com/vbscript/func_strcomp.asp 这篇文章。 :d 感谢