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