我是网页设计的新手(使用 ASP.net MVC4/Razor),有时互联网上的信息太多了,我已经用谷歌搜索了 2 个小时,我为我的问题找到了很多不同的答案,但我不知道哪一个是最好的,所以我会在这里问它:
我有一个数据库(首先是 EF 代码),它有一个从不同位置插入的日志表。但是我想制作一个页面,在该页面上它应该始终显示最后 20 行。
于是我google了一下,发现:
微软的ajax?
jQuery 阿贾克斯?
不显眼的阿贾克斯?
SignalR 与 Jquery?
网络套接字?
将 ajax 与模板一起使用?
我敢肯定,会有一些选项比其他选项更好,或者可能是我尚未提到的选项。有人可以告诉我应该深入哪个方向来获得我想要的东西。(我不想得到所有的代码,我只需要一些指导,因为我在太多的选项中有点迷失了+-)
编辑:
我会指定更多,我知道我必须创建一个 API 来获取 JSON 之类的东西
public JsonResult GetLast20LogRows()
{
...
return listoflast20rows; //(as List<DatabaseLog>())
}
我只是不知道HTML/Javascript/ajax
标准以及如何让它刷新 HTML 而无需刷新整个页面。(Ajax)
编辑2:
服务器端代码:
ChatBotLog.cs
(EF代码优先):
public class ChatBotLog
{
[Key]
public int Id { get; set; }
public DateTime? Date { get; set; }
public ServerRegion Region { get; set; }
public string Text { get; set; }
}
现在我想要一个 .cshtml(剃须刀页面)来获取显示最后 20 行的方法,我将让该方法快速获取最后 20 行:
public JsonResult GetLastLogRows()
{
using (var db = new MyDb())
{
var listlog = db.ChatBotLogs.OrderByDescending(x => x.Date).Take(20);
return Json(listlog);
}
}
我认为这是我应该根据我所阅读的内容制作的方法,无论如何请告诉我如果我错了,我还在寻找一种在视图上显示它的方法,我应该使用什么类型的ajax,它没有必须是“实时直播”,但喜欢每 5 秒刷新一次数据。
希望你现在能更好地理解,我被困在哪里。