はそれを行うための別の方法です:
- 使用AJAXとあなたの
ViewBag
であなたのコントローラでsetTimeout
- 宣言つのアクション(この1つはあなたの異なる値を返します)
- 整数、いくつかのように:
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
:あなたはこのすべてを持っているならば、あなたはさわやかせずにビューを更新する準備が整いました:
<script>
$(function() {
var totalItems = @Html.Raw(Json.Encode(ViewBag.TotalItems));
var currentItemIndex = 0;
var getData = function() {
$.post("@Url.Action("GetItem")", {index:currentItemIndex}, function(data) {
// data is myList.ElementAt(index)
// do something with it
}).always(function() {
currentItemIndex++;
if(currentItemIndex < totalItems) {
setTimeout(getData, 1000); // get the next item every 1 sec
}
})
}
getData(); // start updating
})
</script>
長時間実行しているタスクで進捗状況を表示する場合は、配管のためにSignalRを見てください。 –
あなたの目標は何ですか? SignalRはオプションですが、設定には手間がかかります。定期的なajax呼び出しはどうですか? – axlj
@axlj私は8つのオブジェクトを持っていますが、同時にこれらの値を読む必要があります。そして、イベントを呼び出す必要があります。私が探している特定の値が画面に表示されています。 – WKara