Request.QueryString["id"]跟Request["id"]

本文详细解析了ASP.NET中Request.QueryString[id]与Request[id]的区别,阐述了它们的优先级顺序及如何正确读取地址栏参数。

 Request.QueryString["id"] 只能读取通过地址栏参数传递过来的名为id的参数。
 Request["id"]是一个复合功能读取函数。

 它的优先级顺序为

 QueryString > Form > Cookies > ServerVariables

它将最多做出4个尝试,只有四个尝试都失败,才返回空。

如果这个参数不存在,返回null,如果参数写法是xxx.aspx?id=,返回“”;

### 关于 ASP 中 `Request.QueryString` 使用整数作为键的合法性 在 ASP 或经典 VBScript 中,`Request.QueryString` 是一个集合,用于接收通过 GET 方法传递的查询字符串参数。根据引用内容[^2],`Request.QueryString` 的键通常是一个字符串名称,表示查询字符串中的参数名。然而,当尝试使用整数作为键时,其行为需要进一步分析。 #### 1. 整数作为键的行为 在 ASP 中,`Request.QueryString` 的键实际上是基于字符串匹配的。如果直接使用整数作为键(例如 `Request.QueryString[1]`),系统会将该整数隐式转换为字符串,并尝试匹配查询字符串中是否存在名为 `"1"` 的参数。因此,从技术上讲,这种用法是合法的,但并不推荐,因为这可能会导致混淆和潜在的错误[^2]。 #### 2. 示例代码 以下代码展示了如何验证 `Request.QueryString` 是否支持整数作为键: ```asp <% Dim intValue, stringValue intValue = Request.QueryString(1) ' 使用整数作为键 stringValue = Request.QueryString("1") ' 使用字符串作为键 If intValue = stringValue Then Response.Write "整数作为键与字符串作为键的行为一致。" Else Response.Write "整数作为键的行为与字符串不同。" End If %> ``` #### 3. 推荐实践 尽管整数可以作为键使用,但为了代码的可读性和一致性,建议始终使用字符串作为键。例如,如果查询字符串为 `?id=123`,则应使用 `Request.QueryString("id")` 而非 `Request.QueryString(0)` 或其他形式[^2]。 #### 4. 验证请求数据的合法性 无论使用何种键类型,都应验证请求数据的合法性。例如,确保 `id` 参数确实是整数,可以通过以下方式实现: ```asp <% Dim idValue idValue = Request.QueryString("id") If IsNumeric(idValue) Then Response.Write "ID 是一个有效的数字:" & CInt(idValue) Else Response.Write "ID 不是有效数字。" End If %> ``` 上述代码利用了检查函数 `IsNumeric` 来验证 `id` 是否为数字[^4]。 ### 结论 在 ASP 或经典 VBScript 中,`Request.QueryString` 支持整数作为键,但实际操作中会将其转换为字符串进行匹配。因此,虽然合法,但不推荐使用整数作为键,以避免潜在的混淆和错误。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值