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.querystring()的理解_Better Thinker-CSDN博客_request.querystring用法https://blog.csdn.net/a6225301/article/details/8970595

Request.Form&Request.QueryString实现伪ajax的效果的更多相关文章

  1. csharp: Request.Form,Request.QueryString,Request.Params,Request.Cookies

    /// <summary> /// Request.Form,Request.QueryString,Request.Params /// http://msdn.microsoft.co ...

  2. C#中 Request, Request.params , Request.querystring , Request.Form 区别 与联系用法

    C#中 Request, Request.params , Request.querystring , Request.Form 区别 与联系用法? Request.params , Request ...

  3. Request.Form("id")与Request.QueryString("id")的区别

    获取以表单提交的post类型的值,也就是获取<form method="post">这种方式提交的值request包含各种方式的值,没有指名是什麽,所以Request. ...

  4. 客户端的数据来源:QueryString, Form, Cookie Request[]与Request.Params[]

    在ASP.NET编程中,有三个比较常见的来自于客户端的数据来源:QueryString, Form, Cookie . 我们可以在HttpRequest中访问这三大对象. QueryString: 获 ...

  5. request.querystring和request.form、session的区别

    1. request.querystring是用来接收地址里面问号“?”后面的参数的内容,  用get方法读取的 不安全   request.form是用来接收表单递交来的数据 ,是用post方法读取 ...

  6. Request、Request.Form、Request.QueryString 用法的区别

    Request.Form:获取以POST方式提交的数据. Request.QueryString:获取地址栏参数(以GET方式提交的数据). Request:包含以上两种方式(优先获取GET方式提交的 ...

  7. Request、Request.Form和Request.QueryString的区别

    Request.Form:获取以POST方式提交的数据(接收Form提交来的数据): Request.QueryString:获取地址栏参数(以GET方式提交的数据) Request:包含以上两种方式 ...

  8. asp.net Request、Request.Form、Request.QueryString的区别(转)

    Request.Form:获取以POST方式提交的数据. Request.QueryString:获取地址栏参数(以GET方式提交的数据). Request:包含以上两种方式(优先获取GET方式提交的 ...

  9. [转载]Request、Request.Form和Request.QueryString的区别

    Request.Request.Form和Request.QueryString的区别 request本身是一个系统的静态对象,本身也可以作为数组调用,比如request("abc" ...

  10. Request.QueryString()和Request()和Request.Form();

    一. querystring的用法及原理 当页面上的 FORM以 GET方式向页面发送请求数据 (如数据含有不安全字符,则浏览器先将其转换成 16进制的字符再传送,如空格被转成 %20)时, WEB ...

随机推荐

  1. 洛谷P4197 Peaks (Kruskal重构树)

    读题,只经过困难值小于等于x的路径,容易想到用Kruskal重构树:又要查询第k高的山峰,我们选择用主席树求解. 先做一棵重构树,跑一遍dfs,重构树中每一个非叶子节点对应一段区间,我们开range[ ...

  2. 洛谷P3376 (最大流模板)

    1 #include<bits/stdc++.h> 2 #define int long long 3 using namespace std; 4 const int maxn=5005 ...

  3. MatrixOne从入门到实践08——SSB性能测试

    MatrixOne从入门到实践--SSB性能测试 SSB 星型模式基准测试是 OLAP 数据库性能测试的常用场景,通过本篇教程,您可以了解到如何在 MatrixOne 中实现 SSB 测试. 测试环境 ...

  4. Linux-->开关机+用户管理指令

    关机与重启指令 shutdown关机 语法: shutdown -h 关机时间 now 立刻 1 1分种后 shutdown重启 语法: shutdown -r 重启时间 now 立刻 1 1分钟后 ...

  5. 数据结构中的哈希表(java实现)利用哈希表实现学生信息的存储

    哈希表 解释 哈希表是一种根据关键码去寻找值的数据映射结构,该结构通过把关键码映射的位置去寻找存放值的地方 内存结构分析图 1.定义一个类为结点,存储的信息 2.定义链表的相关操作 3.定义一个数组存 ...

  6. linux下开机启动443程序无法访问解决方法

    前言:最近,有一个项目需要用到开机自动启动程序,所以就研究了一下,环境为redhat8,程序是node,使用forever来进行node程序的持久化,程序使用的是443端口,开启的是https 1.把 ...

  7. LabVIEW开放神经网络交互工具包【ONNX】,大幅降低人工智能开发门槛,实现飞速推理

    前言 前面给大家介绍了自己开发的LabVIEW AI视觉工具包,后来发现有一些onnx模型无法使用opencv dnn加载,且速度也偏慢,所以就有了今天的onnx工具包,如果你想要加载更多模型,追求更 ...

  8. ATT&CK框架整理(中英文整理)

    工作需要了解了一下ATT&CK框架,留个记录.

  9. Maven 聚合工程的创建

    简单场景举例 聚合工程创建示例 说明: 创建 Maven Project:表示创建 maven 项目,new Project 方式创建 创建 Maven Module:表示创建 maven 项目,ne ...

  10. JavaScript&Bootstrap

    1. JS介绍 JS诞生主要是完成页面的数据验证.因此它运行在客户端,需要浏览器来执行JS代码 JS最早取名LiveScript:为了吸引更多的Java程序员,更名JavaScript JS是弱类型, ...