C# 不使用更新模型向导获取Web应用以自动刷新数据库

C# 不使用更新模型向导获取Web应用以自动刷新数据库,c#,jquery,asp.net-mvc,entity-framework,C#,Jquery,Asp.net Mvc,Entity Framework,当原始数据进入并更新MySql数据库时,如何让数据库自动刷新。我所说的不仅仅是更新模型,因为我需要这样做,而且每隔5分钟左右自动更新一次视图?这是一个相当模糊的问题,也许最好在您的页面上给出一个数据示例,这样我们就可以提出最适合它的建议。但如果我理解正确,有一些方法可以解决这个问题,你可以把它作为一个起点 将使用javascript MVVM库(knockout)并进行ajax调用以获取新数据,然后将这些更改推送到视图模型。不过,这需要代表您阅读一段相当多的文章(比我愿意在这里给出的答案还要多—

当原始数据进入并更新MySql数据库时,如何让数据库自动刷新。我所说的不仅仅是更新模型,因为我需要这样做,而且每隔5分钟左右自动更新一次视图?

这是一个相当模糊的问题,也许最好在您的页面上给出一个数据示例,这样我们就可以提出最适合它的建议。但如果我理解正确,有一些方法可以解决这个问题,你可以把它作为一个起点

  • 将使用javascript MVVM库(knockout)并进行ajax调用以获取新数据,然后将这些更改推送到视图模型。不过,这需要代表您阅读一段相当多的文章(比我愿意在这里给出的答案还要多——尽管这是值得的)

  • 您可以使用signar之类的工具将通知/更新推送到浏览器(您也可以将其与选项1结合使用),并使用javascript/jquery更新页面

  • 您可以在计时器上使用ajax来获取数据,并使用javascript/jquery来更新页面

  • 如果您想要更简单的方法,可以使用javascript计时器在5分钟后刷新页面。然后,你的控制器将获取最新的数据等,可能有点恼人,如果人们在中间的东西虽然。 编辑:

    由于您不与数据交互,因此最简单的方法可能是在页面加载时获取数据,并设置计时器,每5分钟再次获取一次数据

    public class MyStatsModel
    {
         public int StatA { get; set; }
         public string StatB { get; set; }
         public double StatC { get; set; }
         // etc
    }
    
    [HttpGet]
    public JsonResult FetchLatestStats()
    {
         var dbStats = // get latest stats
         var myStatsModel = new MyStatsModel() { StatA = dbStats.A }; // etc
         return new Json(MyStatsModel);
    }
    
     $(document).ready(function () {
         var interval = 5 * 60 * 1000;  // 5 minutes
         var getLatestStats = function() {
             $.ajax({
                 type: 'GET',
                 url: '/Stats/FetchLatestStats'
                 dataType: "application/json; charset=utf-8",
                 success: function(myStatsModel) {
                     $('#someElementA').text(myStatsModel.StatA);
                     $('#someElementB').text(myStatsModel.StatB);
                     // etc
                 },
                 error: function() {
                     alert('There was an error fetching latest stats!');
                 }
             });
         };        
         setInterval(getLatestStats(), interval);
     };
    

    我的数据是一台生产布料的机器,该机器内置了软件,以跟踪断针、生产的布料总码、当前编织机等数据,这些数据将一直在变化。所有这些数据都存储在一个巨大的MySql数据库中的许多表中。添加了一个快速示例好的,这非常有用,如果我使用MVC,我可以使用上面的作为更新控制器的原型,还是应该在我的项目中创建一个完全独立的类来更新某些视图?如果你的控制器被称为StatController(因为ajax url是/stats/fetchlateststats)您可以将其用作通用模板。显然,只需根据实际数据定制您的模型即可。