-4

ビューをほぼリアルタイムで更新して、たまたま数字であるテキストを作成する簡単な方法を探しています。

ビューに次のようなテキストがあります。

<% if (ViewData["TotalRecords"] != null)
   { %>
<%= ViewData["TotalRecords"].ToString() + 
                    " records available to search."%>
<% } %><br />

ViewData["TotalRecords"]60秒程度ごとに常に更新される値になりたいです。

下のクエリは次のとおりです。

public static string GetTotalRecords()
        {
            DataContext dc = new DataContext();
            return dc.Records.Count().ToString("#,##0");
        }

これをAjax対応の動的なテキストにするにはどうすればよいですか?

4

4 に答える 4

5

その部分を別のアクションに移動します

public ActionResult TotalRecords()
{
   var totalRecords = GetTotalRecords();
   return PartialView(totalRecords);
}

親ビューで、最初にそのアクションを次のようにレンダリングします

<div id="totalRecords">
     @Html.RenderAction("TotalRecords")`
</div>

そして、60秒ごとにTotalRecordsアクションをリロードするsetIntervalを使用したスクリプト

<script>

$(function(){
     setInterval("reloadTotalRecords", 60 * 1000);
});

function reloadTotalRecords()
{
    $('#totalRecords').load('@Url.Action("TotalRecords")');
}

</script>
于 2012-06-12T12:12:48.943 に答える
0

どこかにJavaScriptが必要です。AsetTimeoutを使用して、番号を返すajaxメソッドを呼び出すことができます。このメソッドは、ブラウザーのコンテンツを更新するために使用されます。

jQueryを使用して特定の要素をターゲットにすることができます。この質問にはいくつかの例があります。

于 2012-06-12T12:08:06.853 に答える
-1

私はこれがあなたの質問を解決するはずだと信じています: jQuery Ajax setTimeout JSON

JavaScriptのsetTimeout関数を使用して、60秒ごとにAjax関数を呼び出します。

何かのようなもの:

function updateContent() {
    $.ajax({
      url: 'url',
cache:false,
      success: function(data) {
    $('#item-id').html(data.NewValue);
    },
      dataType: 'json'
    });
    }

    $(function () {
        setTimeout(updateContent, 60000); 
    }
于 2012-06-12T12:12:01.767 に答える
-2

SignalRにジャンプします。興味深いですね。

于 2012-06-12T12:15:11.547 に答える