1

我正在编辑其他人的代码,用 ASP 的服务器端 JS 编写,并且遇到了一个可能有一个非常简单的解决方案的问题。

我正在从 URL 参数中输出一些代码,如下所示:

<%=Request.QueryString("param")%>

问题是如果参数不存在,我需要做其他事情。所以我尝试了:

<% 
  var param = Request.QueryString("param");
  if (!param) { param = "Some Default Value"; }
%>
<%=param%>

问题是,即使 URL 参数丢失,if似乎也不会评估为。true我猜这个!image条件在这里不起作用。我的测试条件应该是什么?

(请放弃关于转义 URL 参数以防止 XSS 的严厉警告。)

4

3 回答 3

5

检查查询字符串参数是否存在的正确方法是使用Count属性:

<% 
  var param = Request.QueryString("param");
  if (param.Count === 0) { param = "Some Default Value"; }
%>
<%=param%>

根据文档Request.QueryString

Request.QueryString( parameter ) 的值是 QUERY_STRING 中出现的所有参数值的数组。

这可能是简单if (!param)检查不起作用的原因。

于 2012-03-26T07:51:37.827 回答
2

这就是我所做的。

function qs(name) {
    var v = Request.QueryString(name),
        v2 = "x" + v + "x";
    if ((v2=="xundefinedx") && (v != "undefined")) {
        return null;
    }
    return v + ''; // force string
}
于 2012-03-26T01:04:55.117 回答
-1

在 JSP 中你必须使用getParameter而不是QueryString

JSP 中的代码是

<% 
  String param = request.getParameter("param");
  if (param.length() == 0) { param = "Some Default Value"; }
%>
于 2010-10-11T19:15:35.117 回答