【发布时间】:2013-05-16 13:12:07
【问题描述】:
如下检索请求参数是否有问题或区别:
Request("<ParamName>")
代替:
Request.Form("<ParamName>") 或 Request.QueryString("<ParamName>") ?
提前致谢!
【问题讨论】:
标签: asp-classic request http-request-parameters
如下检索请求参数是否有问题或区别:
Request("<ParamName>")
代替:
Request.Form("<ParamName>") 或 Request.QueryString("<ParamName>") ?
提前致谢!
【问题讨论】:
标签: asp-classic request http-request-parameters
Request.Form() 将获取已发布的值。 Request.QueryString() 将包含来自查询字符串的值。 Request() 将包含 POSTed 值,除非存在同名的 QueryString 值,在这种情况下它将包含 QueryString 值。
我认为 cookie 也可能参与其中,但我对它们如何放入堆栈的记忆有点模糊。
如果您关心来自 POSTed 表单的值,则使用 Request.Form(),如果您关心 URL 查询字符串值,则使用 Request.QueryString()。如果您不在乎,只需使用 Request()。
快速样品测试:
<% OPTION EXPLICIT %>
<%
dim vname : vname = "test"
dim r : r = request(vname)
dim r_f : r_f = request.form(vname)
dim r_q : r_q = request.querystring(vname)
%>
POST:<br />
<form method="post">
<input type="text" name="test" value="Posted Form Value">
<input type="submit" name = "">
</form>
<hr>
<a href='?test=<% = Server.HtmlEncode("Querystring in URL") %>'>GET</a>
<hr>
request: <% = r %>
<hr>
request.form: <% = r_f %>
<hr>
request.querystring: <% = r_q %>
【讨论】:
Request("foo") 将搜索以下集合:Request.Form、Request.QueryString、Request.Cookies,最后是 Request.ServerVariables。指定您需要搜索的集合会更有效。