繁体   English   中英

如何使用AJAX在ASP.net MVC4站点上显示日志数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM