我试图通过ASP
在javascript中设置一个值foo('RequestMode', '<%=Request.Querystring("Mode")%>')
我想做的事情是这样的
foo('RequestMode', '<%=if (Request.Querystring("Mode")="") then
Session("RequestMode")=""
else
Request.Querystring("Mode")
end if%>')
如果我使用开场标签
<%=
我收到错误说
&#39;如果&#39;运算符需要两个或三个操作数。
但是如果我使用开始标记
<&
我收到错误说
属性访问必须分配给属性或使用其值。
Request.Querystring(&#34; Mode&#34;)&lt; --- highlight
这使我相信我的代码本身没有错误。我怎样才能完成任务?
答案 0 :(得分:2)
你的问题应该是你在if语句中使用的&lt;%=。您正在编写的实际上是将if语句直接打印到页面而不是在VBScript中运行它。记住
<%= %>
相当于
<% Response.Write() %>
所以你的if被写入页面。你应该写的是:
foo('RequestMode', '<% if (Request.Querystring("Mode")="") then %>
<%= Session("RequestMode")="" %>
<% else %>
<%= Request.Querystring("Mode") %>
<% end if%>')
也作为一个注释,我留下了应该是一个错误,因为我不知道你想如何纠正它。特别是行
<%= Session("RequestMode")="" %>
应该是
<%= Session("RequestMode") %>
或
<% Session("RequestMode")="" %>
或
<%= Session("RequestMode") %>
<% Session("RequestMode")="" %>
或
<% Session("RequestMode")="" %>
<%= Session("RequestMode") %>
修改强>
只想澄清你提到的其他错误。它说的原因
Property access must assign to the property or use its value
是因为当您将&lt;%=更改为&lt;%
时,错误表明您正在访问变量并且不执行任何操作<%=Request.Querystring("Mode")%>
工作正常,因为它实际上是
<% Response.Write(Request.Querystring("Mode")) %>
将打印到页面的行。当您删除等号时,您不再对Request.Querystring(&#34; Mode&#34;)执行操作,因为您要删除该response.write