Json实现异步请求提交评论无需跳转其他页面

时间:2022-09-21 15:21:00

主要将代码粘贴,通过阅读代码理解其中的相关逻辑。

html代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form id="form1" runat="server">
<p>
评论:</p>
<p>
姓名:<input type="text" name="username" id="username1" /></p>
<p>
内容:<textarea name="content" id="content" rows="2" cols="20"></textarea></p>
<p>
<input type="button" id="send" value="提交" /></p>
</form>
<div class="comment">
已有评论:</div>
<div id="resText">
</div>

js代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
$("#send").click(function () {
$.get("doSave.ashx", {<span style="white-space:pre"> </span> <span style="font-family: Arial, Helvetica, sans-serif;"> </span>//调用json插件
u_name: $("#username1").val(), //json数据/值对化
u_cont: $("#content").val()
}, function (data)
var uName = data.username; //注:此处的username与doSave.ashx中的dic.add("username",uname)中的username相对应的
var uCont = data.content;
var txtHtml = "<div class='comment'><h6>"
+ uName + ":</h6><p class='para'>"
+ uCont + "</p></div>"
$("#resText").html(txtHtml); //将返回的数据添加到页面上
}, "json");
})

插件代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<%@ WebHandler Language="C#" Class="doSave" %>
 
using System;
using System.Web;
 
public class doSave : IHttpHandler
{
 
public void ProcessRequest(HttpContext context)
{
 
var dic = new System.Collections.Generic.Dictionary<string, object>(); //存储的集合
string jsonStr = "{}"; //新建字符串jsonStr
 
context.Response.ContentType = "text/json"; //定义返回的内容类型为json
 
string uname = context.Request.QueryString[0]; //获取请求参数中第一个参数,也可以直接使用uname
 
string commet = context.Request.QueryString[1]; //定义字符串uname、commet为context请求查询的字符串context.Request.Params["username"];QyertStrubg:查询字符串
 
dic.Add("username", uname); //将字符串添加到对象中
 
dic.Add("content", commet);
 
jsonStr = Newtonsoft.Json.JsonConvert.SerializeObject(dic); //序列化集合为json字符串
 
context.Response.Write(jsonStr);
}
 
public bool IsReusable
{
get
{
return false;
}
}
 
}

此处效果即为,在输入框中输入相关文字,点击提交,下方会自动将书写的文字进行展示,无需跳转其他页面。