这可能是非常基础但是,
在下面的代码中,if分支是为了覆盖命中请求错过“name”查询参数的异常情况,如http://foo.com/bar.asp?foo=bar
<%@ language="javascript" %>
<html>
<head>
<title>Hello ASP!</title>
</head>
<body>
<%
if (Request.QueryString("name") == undefined)
{
Response.Write("oops, give me your name!");
}
else
{
Response.Write("Hello " + Request.QueryString("name") + "!");
}
%>
</body>
</html>
但从未输入if分支。 else分支每次都会发生,每次都有“ Hello undefined!”。
我试图用“”或 null 替换undefined,但没有任何变化。
我已经四处寻找,但得到的东西是关于ASP.NET / C#和客户端JavaScript。 感谢您的帮助!
更新:
嗨伙计们,谢谢你的关注!
但我的意思是ASP利用JavaScript来进行服务器端编程。我已经更新了上面的代码。
答案 0 :(得分:3)
检查参数是否通过的最可靠方法是检查Count
属性:
if (Request.QueryString("name").Count === 0) {
// do whatever...
}
这是有效的,因为如果在URL中多次指定相同的参数,Request.QueryString(var)
实际上返回包含多个值的类数组对象(例如,http://example.com/test.asp?name=value1&name=value2)。您可以在MSDN文档中阅读更多内容:
http://msdn.microsoft.com/en-us/library/ms524784%28VS.90%29.aspx
答案 1 :(得分:0)
也许这对你有用:
<script type="text/javascript">
// access the server-side response
// and store it in a javascript variable
var myQueryString = '<%= Request.QueryString("name") %>';
// now write to the document using javascript only
if (myQueryString === "" ) {
document.write("oops, give me your name!");
} else {
document.write("Hello " + myQueryString + "!");
}
</script>