在C#中,使用AJAX(Asynchronous JavaScript and XML)实现实时数据交互通常涉及到两个方面:服务器端和客户端。这里我们将使用ASP.NET Core Web API作为服务器端,jQuery作为客户端。
- 创建ASP.NET Core Web API
首先,我们需要创建一个ASP.NET Core Web API项目。在Visual Studio中,选择“创建新项目” -> “ASP.NET Core Web 应用”。
- 添加模型类
在项目中创建一个名为Data
的文件夹,并在其中创建一个名为Model.cs
的文件,定义一个简单的数据模型类:
public class Data { public string Value { get; set; } }
- 创建控制器
在Controllers
文件夹中创建一个名为DataController.cs
的文件,定义一个API控制器来处理客户端的请求:
using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNetCore.Mvc;
namespace RealTimeData交互.Controllers
{
[ApiController]
[Route("[controller]")]
public class DataController : ControllerBase
{
private static List dataList = new List
{
new Data { Value = "https://www.yisu.com/ask/数据1" },
new Data { Value = "https://www.yisu.com/ask/数据2" },
new Data { Value = "https://www.yisu.com/ask/数据3" }
};
[HttpGet("getdata")]
public ActionResult> GetData()
{
return dataList;
}
[HttpGet("updatedata")]
public ActionResult UpdateData(string newValue)
{
var dataToUpdate = dataList.FirstOrDefault(d => d.Value =https://www.yisu.com/ask/= newValue);>
- 客户端实现(jQuery)
在项目中创建一个名为Scripts
的文件夹,并在其中创建一个名为main.js
的文件,编写客户端代码:
$(document).ready(function () {
// 获取数据
function getData() {
$.getJSON("/api/data/getdata", function (data) {
$("#dataList").html("");
data.forEach(function (item) {
$("#dataList").append("" + item.Value + "
");
});
});
}
// 更新数据
function updateData() {
var newValue = https://www.yisu.com/ask/prompt("请输入要更新的数据:");
$.getJSON("/api/data/updatedata", { newValue: newValue }, function (data) {
if (data != null) {
$("#dataList").html("");
$("#dataList").append("" + data.Value + "
");
}
});
}
// 初始化
getData();
// 每隔5秒钟更新一次数据
setInterval(updateData, 5000);
});
- 在
Views/Home/Index.cshtml
中引入jQuery库和客户端脚本:
AJAX 实时数据交互
实时数据交互
现在,当你运行项目并访问https://localhost:5001
时,你将看到每隔5秒钟自动更新的实时数据。你可以通过点击“更新数据”按钮来手动更新数据。