Request.Form&Request.QueryString实现伪ajax的效果
1、问题描述
最近一直在搞公司老系统的需求开发,前端是asp,后端的vb。碰到了一个需求,是做一个”日志查询”功能,查询条件为:时间&操作人。

原本我的设计思路是异步查询,通过ajax传参到后端再把后端查询结果返回过来,这样就可以既得到查询结果,也可以保留当前的查询条件。但实际操作起来碰到了困难。
公司老系统这种前后端ajax交互的逻辑是:


这种方式貌似只能ajax返回字符串,而我的查询结果是一个集合,我不知道在xxxAjax.asp的{...}中该怎么定义并接收一个list。
因为用的技术语言比较老,网上也没找到相关的解决方法。
2、解决方法
后来我参考了其他相似功能的页面,没有用ajax,而是用了Request.QueryString。asp页面把查询条件封装成form传给自己,Request.QueryString其实就是获取url中传过来的值的,就像这些:

Request.QueryString是获取get请求的,而另一种Request.Form是获取post请求的
具体可以参考:关于request.querystring()的理解_Better Thinker-CSDN博客_request.querystring用法
Request.QueryString.Count判断传过来的参数数量,如果数量>0则调用后端方法,否则不调用。这样就避免了刚打开该查询页面,参数都为null,导致的参数缺失错误!(因为asp的执行顺序是先执行<%...%>里面的代码。然后再去执行<head><body><script>里面的代码。这和jsp一样。所以如果不先做Request.QueryString.Count>0判断再调后端方法就会报参数缺失错误的)至于查询后保留查询条件就很简单了,因为本来参数就是自己传给自己的,所以直接Request接收就行了。
<%
Set bzHrHirePlan = CreateObject("bzHrHirePlan.wsc")
dateNow=aspCommon.FormatTime(Date,1)
if Request("BeginDate")<>"" and Request("EndDate")<>"" then
dBeginDate=Request("BeginDate")&""
dEndDate=Request("EndDate")&""
else
dBeginDate=dateNow
dEndDate=dateNow
end if
if Request("operatorTxt")<>"" then
sOperator=Request("operatorTxt")
else
sOperator=auCommon.LOGON_UID
end if
%>
...asp前端代码
<% If Request.QueryString.Count <> 0 Then
Set rs1 = bzHrHirePlan.ListLog(null,dBeginDate,dEndDate,sOperator)
If rs1.EOF Then
%>
<p>[没有符合条件的记录。]</p>
<% Else %>
<table class="table table-datalist">
<tr>
<th>序号</th>
<th>职位编号</th>
<th>操作人</th>
<th>操作时间</th>
<th>记录</th>
</tr>
<% i=0
Do While Not rs1.EOF
i=i + 1
idPlan=Right("00000"&rs1("EventKeyLink"),5)
operator=rs1("EventHandler")
operateTime=rs1("LogTime")
record=rs1("EventDescription")
%>
<tr>
<td>
<%=i%>
</td>
<td>
<%=idPlan%>
</td>
<td>
<%=operator%>
</td>
<td>
<%=operateTime%>
</td>
<td>
<%=record%>
</td>
</tr>
<% rs1.MoveNext
Loop %>
</table>
<% End If
rs1.Close
End If %>
3、参考资料
Request.Form&Request.QueryString实现伪ajax的效果的更多相关文章
- csharp: Request.Form,Request.QueryString,Request.Params,Request.Cookies
/// <summary> /// Request.Form,Request.QueryString,Request.Params /// http://msdn.microsoft.co ...
- C#中 Request, Request.params , Request.querystring , Request.Form 区别 与联系用法
C#中 Request, Request.params , Request.querystring , Request.Form 区别 与联系用法? Request.params , Request ...
- Request.Form("id")与Request.QueryString("id")的区别
获取以表单提交的post类型的值,也就是获取<form method="post">这种方式提交的值request包含各种方式的值,没有指名是什麽,所以Request. ...
- 客户端的数据来源:QueryString, Form, Cookie Request[]与Request.Params[]
在ASP.NET编程中,有三个比较常见的来自于客户端的数据来源:QueryString, Form, Cookie . 我们可以在HttpRequest中访问这三大对象. QueryString: 获 ...
- request.querystring和request.form、session的区别
1. request.querystring是用来接收地址里面问号“?”后面的参数的内容, 用get方法读取的 不安全 request.form是用来接收表单递交来的数据 ,是用post方法读取 ...
- Request、Request.Form、Request.QueryString 用法的区别
Request.Form:获取以POST方式提交的数据. Request.QueryString:获取地址栏参数(以GET方式提交的数据). Request:包含以上两种方式(优先获取GET方式提交的 ...
- Request、Request.Form和Request.QueryString的区别
Request.Form:获取以POST方式提交的数据(接收Form提交来的数据): Request.QueryString:获取地址栏参数(以GET方式提交的数据) Request:包含以上两种方式 ...
- asp.net Request、Request.Form、Request.QueryString的区别(转)
Request.Form:获取以POST方式提交的数据. Request.QueryString:获取地址栏参数(以GET方式提交的数据). Request:包含以上两种方式(优先获取GET方式提交的 ...
- [转载]Request、Request.Form和Request.QueryString的区别
Request.Request.Form和Request.QueryString的区别 request本身是一个系统的静态对象,本身也可以作为数组调用,比如request("abc" ...
- Request.QueryString()和Request()和Request.Form();
一. querystring的用法及原理 当页面上的 FORM以 GET方式向页面发送请求数据 (如数据含有不安全字符,则浏览器先将其转换成 16进制的字符再传送,如空格被转成 %20)时, WEB ...
随机推荐
- Tableau Server注册安装及配置详细教程
Tableau Server注册安装及配置详细教程 本文讲解的是 Tableau Server 10.0 版本的安装及配置 这里分享的 TableauServer 安装版本为64位的10.0版本Ser ...
- iptables基本使用举例
一.链的基本操作 1.清除所有的规则. 1)清除预设表filter中所有规则链中的规则. # iptables -F 2)清除预设表filter中使用者自定链中的规则. #iptables -X #i ...
- Teambition企业内部应用开发指南
Teambition企业内部应用Python开发指南 注意:此文章并非搬运,一小部分仅为借鉴. Teambition提供了API接口,我们可以注册成为开发者,然后通过接口获取Teambition的数据 ...
- Python学习之实例3
一.文字读取并打印拼接字符串 1 with open('G:\python\char.txt') as f: #使用open()函数以只读模式打开文件 2 s=f.read() #使用read()方法 ...
- 嵌入式-C语言基础:指针偏移打印数组
在C语言中,数组名代表数组中首元素的地址,所以,下面两句获取数组的首地址是等价的: #include<stdio.h> int main() { int a[5]={1,2,3,4,5}; ...
- js和jquery页面初始化加载函数的方法及顺序
运行下面代码.弹出A.B.C.D.E的顺序:A=B=C>D=E. <html> <head> <title>首页</title> <scri ...
- mysql删库报错
3.开发人员测试环境删库报错 #解决:在数据库的物理目录中(mysql的data目录),进入要删除的数据库目录,查看是否有文件存在,若存在,使用rm -rf 命令清除:再次执行删除数据库命令即可 [r ...
- ROSIntegration ROSIntegrationVision与虚幻引擎4(Unreal Engine 4)的配置
ROSIntegration ROSIntegrationVision与虚幻引擎4(Unreal Engine 4)的配置 操作系统:Ubuntu 18.04 虚幻引擎:4.26.2 目录 ROSIn ...
- 基于python的数学建模---机场航线设计
数据集 拿走: 链接:https://pan.baidu.com/s/1zH5xhpEmx2_u5qO9W4gCkw 提取码:2wl5 数据集来自航空业,有一些关于航线的基本信息.有某段旅程的起始点和 ...
- C#winform使用NOPI读取Excel读取图片
需求:在Winform使用NOPI做导入时候,需要导入数据的同时导入图片. 虽然代码方面不适用(我好像也没仔细看过代码),但是感谢大佬给了灵感http://www.wjhsh.net/IT-Ramon ...