[英]How to display log data on ASP.net MVC4 site with AJAX
我是网页设计新手(使用ASP.net MVC4 / Razor),有时互联网上的信息太多,我已经在Google上搜索了2个小时,但发现很多不同的答案可以解决我的问题,但是我不知道哪个是最好的,所以我在这里问:
我有一个数据库(首先是EF代码),它具有一个从不同位置插入的日志表。 但是我想制作一个页面,在该页面上它应该始终显示最后20行。
所以我用谷歌搜索,发现:
Micorosoft Ajax?
jQuery Ajax?
毫不客气的Ajax?
SignalR与jQuery?
Websockets?
将ajax与模板一起使用?
我敢肯定,会有一些选择比其他选择更好,或者也许我还没有提到。 有人可以告诉我我应该挖掘什么方向来得到我想要的东西。 (我不想获取所有代码,我只需要一些指导,因为我对太多的选择感到迷茫+)
编辑 :
我将指定更多内容,我知道我必须创建一个API来获取JSON之类的东西
public JsonResult GetLast20LogRows()
{
...
return listoflast20rows; //(as List<DatabaseLog>())
}
我只是不知道HTML/Javascript/ajax
参数以及如何让它刷新HTML而又不刷新整个页面。(Ajax)
EDIT2:
服务器端代码:
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秒刷新一次数据。
希望您现在能更好地理解我的位置。
我认为您的问题可以通过一种简单的方法解决:
1-创建一个jQuery函数,该函数将从Web服务器中提取数据示例:
function GetLatestLogEntries()
{
var latestLogEntries;
$.ajax({
type: "GET",
url: "/{RootFolder}/GetLast20LogRows",
dataType: "json",
success: function (e) {
latestLogENtries = e.data;
// here you will need to format the log entries according to your needs, for example
$("#divLogContainer").html(latestLogENtries);
}
});
}
2-将以下代码放入脚本标签中,以确保在所有页面元素加载后将被执行
$(function(){
setInterval(GetLatestLogEntries(),5000);
})
3-微笑:)
这将每5秒执行一次GetLatestLogEntries函数,您的页面将被最新的20个条目更新
如果您需要进一步的解释,请随时对此答案发表评论
希望这可以帮助 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.