要实现ASP.NET Core不断请求到主页控制器,你可以使用以下解决方法:
setInterval(function () {
$.ajax({
url: '/Home/Index', // 主页控制器的路由
type: 'GET',
success: function (data) {
// 处理返回的数据
}
});
}, 1000); // 每隔1秒发送一次请求
首先,在Startup.cs文件中注册SignalR服务:
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR();
}
然后,在主页控制器中添加一个方法来处理客户端的请求:
public class HomeController : Controller
{
private readonly IHubContext _hubContext;
public HomeController(IHubContext hubContext)
{
_hubContext = hubContext;
}
public IActionResult Index()
{
// 处理请求逻辑
// 将数据推送给客户端
_hubContext.Clients.All.SendAsync("ReceiveData", data);
return View();
}
}
最后,创建一个SignalR hub类来处理与客户端的实时通信:
public class HomeHub : Hub
{
public async Task SendMessage(string message)
{
await Clients.All.SendAsync("ReceiveMessage", message);
}
}
在前端页面中,使用SignalR的JavaScript客户端代码来处理实时通信:
const connection = new signalR.HubConnectionBuilder()
.withUrl("/homeHub")
.build();
connection.on("ReceiveData", function (data) {
// 处理推送过来的数据
});
connection.start().then(function () {
// 连接成功后的处理逻辑
}).catch(function (err) {
// 连接失败后的处理逻辑
});
以上是两种常见的解决方法,你可以根据具体需求选择适合的方法来实现ASP.NET Core不断请求到主页控制器。