外部帖子请求更新页面

时间:2018-07-31 15:38:16

标签: c# asp.net-mvc

问题:

我目前正在制作一个通过发布请求将设备添加到网站的项目。从理论上讲,该程序应该能够获得外部发布请求,然后实时更新其当前页面。因此,该网页将收到来自另一种语言(例如Python)的发布请求,然后实时更新/刷新当前网页。如果有任何不同,此网页将始终在目标屏幕上打开。

代码:

[ActionName("Index")]
public async Task<IActionResult> Index()
{
    AllTestsModel model = new AllTestsModel();
    List<TestConfigModel> configs = new List<TestConfigModel>();
    foreach (var item in _context.TestConfigModels)
    {
        configs.Add(item);
    }
    model.Tests = configs;
    List<Puma> pumas = new List<Puma>();
    foreach (var item in _context.Puma)
    {
        pumas.Add(item);
    }
    if (pumas.Count > 1)
    {
        pumas.RemoveAt(0);
    }
    model.ThePuma = pumas;


    await _context.SaveChangesAsync();


    return View(model);
}
[HttpPost]
public async Task<IActionResult> Index(string serialNum)
{
    if (ModelState.IsValid)
    {
        _context.Add(new Puma { SerialNumber = serialNum, Status = "Waiting for Tests" });
        await _context.SaveChangesAsync();

        return RedirectToAction("Index", "Pumas");
    }
    return View();
}

我看了几个不同的示例,但是所有这些示例似乎都是关于内部发帖请求的,而不是我想要的。我看过ajax和javascript示例,但我不确定这是否是我想要/如何实现它们。我对MVC / asp.net也很陌生,因此将不胜感激!

1 个答案:

答案 0 :(得分:0)

因此,在进行了更多的研究和挖掘之后,我终于找到了问题的答案。我最终要做的是制作一个小javascript函数,该函数每五秒钟重新加载一次页面以检查是否有新的更新。由于我已经在Index()的Get方法中检查了数据库的更改,因此控制器中没有代码最终更改。

对于那些想知道的人,下面是我最终在“索引视图”中输入的代码:

<script type="text/javascript" >
    setTimeout(function () {
        window.location.reload(1);
    }, 5000);

</script >