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. 10.MongoDB系列之副本集组成

    1. 同步 复制是指多台服务器保持相同的数据副本.MongoDB通过保存操作日志(oplog)实现复制功能. oplog存在于主节点local数据库中的一个固定集合,包含了主节点执行的每一次写操作. ...

  2. 使用NEON指令加速RGB888和RGB565的相互转换

    最近在做一个项目需要将RGB888转换为RGB565,用C语言转换的代码很简单,这是从ffmpeg中摘抄的代码 static inline void rgb24to16_c(const uint8_t ...

  3. python视频与帧图片的相互转化,以及查看视频分辨率

    1.拆分视频为帧图片 import cv2 def video2frame(videos_path,frames_save_path,time_interval): vidcap = cv2.Vide ...

  4. Windows 环境搭建 PostgreSQL 逻辑复制高可用架构数据库服务

    本文主要介绍 Windows 环境下搭建 PostgreSQL 的主从逻辑复制,关于 PostgreSQl 的相关运维文章,网络上大多都是 Linux 环境下的操作,鲜有在 Windows 环境下配置 ...

  5. kubernetes VS OpenShift浅析

    Kubernetes vs OpenShift浅析 古语有云:"知彼知己,百战不殆.不知彼而知己,一胜一负.不知彼,不知己,每战必殆." 这句话同样也适用于技术体系.无论我们在落地 ...

  6. 微信小程序之顶部导航栏

    wxml: <!--导航条--><view class="navbar"> <text wx:for="{{navbar}}" d ...

  7. 用Nodejs 实现一个简单的 Redis客户端

    目录 0. 写在前面 1. 背景映入 2. 数据库选择 3. Nodejs TCP连接 3. 代码编写 4. 实验 5. wireshark 抓包分析 6. 杂与代码 0. 写在前面 大家如果有去看过 ...

  8. 谣言检测()《Rumor Detection with Self-supervised Learning on Texts and Social Graph》

    论文信息 论文标题:Rumor Detection with Self-supervised Learning on Texts and Social Graph论文作者:Yuan Gao, Xian ...

  9. 自动化运维?看看Python怎样完成自动任务调度⛵

    作者:韩信子@ShowMeAI Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56 本文地址:https://www.showmeai.tech ...

  10. 使用@Transactional注解的方法所在的类获取不到注解的解决方案

    前段时间遇到一个问题,一个service叫做A吧,有多个实现类分别是B,C,D,需要根据前端传的不同参数去匹配不同的实现类,我就自定义了一个注解@OrderDeal放在B,C,D上面,然后匹配前端传的 ...