- 在 C# 中使用 Ajax 实现异步请求数据
首先需要在 C# 工程中添加引用 System.Web.Extensions.dll,这个dll里面包含了我们所需要使用的一些Ajax相关的类。
接着,我们需要写一个WebForm页面,把需要异步请求数据的代码写在Page_Load事件中。
下面是示例代码:
using System;
using System.Web.Script.Serialization;
using System.Web.Services;
public partial class AjaxDemo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//判断是否是第一次加载
if (!Page.IsPostBack)
{
//取消ViewState
ViewStateUserKey = System.Guid.NewGuid().ToString();
}
}
[WebMethod]
public static string GetTime()
{
//C# 获取当前时间
string now = DateTime.Now.ToString();
//将时间格式化
now = now.Substring(0, now.LastIndexOf(":")) + "分";
//使用JavaScriptSerializer序列化,将C#对象转化成JSON字符串
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(now);
//返回JSON字符串
return json;
}
}
上述代码中,我们写了一个Page_Load事件和一个GetTime方法。Page_Load事件是当页面加载时的处理事件。GetTime方法是我们用来获取数据的方法。
注意到GetTime方法上方有一个“WebMethod”的Attribute,这个Attribute的作用是将方法暴露出来,使其可以被Ajax访问。
使用JavaScriptSerializer将C#对象序列化成JSON字符串,是因为Ajax交互数据时,使用的是JSON格式的数据传输。
- 通过 C# 实现 Ajax 的 POST 请求
假设我们需要向后台提交一段文本,那么我们可以使用 C# 的 POST 请求来实现。下面是示例代码:
using System;
using System.IO;
using System.Net;
using System.Text;
public partial class AjaxDemo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ViewStateUserKey = System.Guid.NewGuid().ToString();
}
}
public static string HttpPost(string url, string postData)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
byte[] data = Encoding.UTF8.GetBytes(postData);
request.ContentLength = data.Length;
Stream newStream = request.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string result = sr.ReadToEnd();
sr.Close();
response.Close();
newStream.Dispose();
return result;
}
protected void Button1_Click(object sender, EventArgs e)
{
//对文本进行POST请求
string url = "http://localhost:8080/receive";
string postData = "text=" + TextBox1.Text.Trim();
string result = HttpPost(url, postData);
Response.Write(string.Format("<script>alert('{0}')</script>", result));
}
}
上述代码中,我们定义了一个HttpPost方法,用来发送POST请求。接着,我们在Button1_Click事件中,获取页面上的文本框中的值,并组装成POST请求的数据,然后将其发送给后台,最后显示后台返回的结果。
通过上述示例,我们可以发现,使用 C# 实现 Ajax 的 POST 请求并不困难,只需要使用特定的类和方法即可轻松地完成。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 如何使用ajax请求 - Python技术站