问题:
我目前正在制作一个通过发布请求将设备添加到网站的项目。从理论上讲,该程序应该能够获得外部发布请求,然后实时更新其当前页面。因此,该网页将收到来自另一种语言(例如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也很陌生,因此将不胜感激!
答案 0 :(得分:0)
因此,在进行了更多的研究和挖掘之后,我终于找到了问题的答案。我最终要做的是制作一个小javascript函数,该函数每五秒钟重新加载一次页面以检查是否有新的更新。由于我已经在Index()的Get方法中检查了数据库的更改,因此控制器中没有代码最终更改。
对于那些想知道的人,下面是我最终在“索引视图”中输入的代码:
<script type="text/javascript" >
setTimeout(function () {
window.location.reload(1);
}, 5000);
</script >