我有一个循环遍历值列表的方法,我想要做的是当我打开页面时能够看到值更改而不刷新当前视图.我试过像下面的代码.
public static int myValueReader { get; set; } public static void ValueGenerator() { foreach (var item in myList) { myValue = item; Thread.Sleep(1000); } }
实际的是,即使我关闭表单,我也希望它读取这些值.我认为我需要分配一个Task才能做到这一点,但是如果有更好的方法,我会徘徊,因为它是一个MVC应用程序?
这是另一种方法:
使用AJAX和 setTimeout
在控制器中声明一个动作(这个动作将返回不同的值)
你的整数ViewBag
,有些像:ViewBag.totalItems
在控制器中声明一个动作:这很重要,因为这将是您与数据库或数据的连接.此操作将接收itemIndex并将返回该项.像这样的东西:
[HttpPost] public JsonResult GetItem(int index) { return Json(myList.ElementAt(index)); }
ViewBag.TotalItems:您的视图必须知道列表中有多少项.我建议你通过以下方法将该值作为整数传递ViewBag
:
public ActionResult Index() { ViewBag.TotalItems = myList.Count(); return View(); }
AJAX和setTimeout
:一旦掌握了所有这些,您就可以在不刷新的情况下更新视图了: