2012-06-12 3 views
-4

Я ищу простой способ сделать фрагмент текста, который, оказывается, является числом, в моем обновлении просмотра в режиме реального времени.Как я могу постоянно обновлять запрос в MVC 3?

У меня есть фрагмент текста, на мой взгляд, что выглядит следующим образом:

<% 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 с поддержкой динамической части текста?

ответ

5

Переместить ту часть, чтобы отделить действия

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

В родительском зрения, изначально делают это действие с

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

И сценария с setInterval перезагружать TotalRecords действие каждые 60 секунд

<script> 

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

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

</script> 
0

Там где-то должен быть какой-то JavaScript. A setTimeout может использоваться для вызова метода ajax, который возвращает номер, который затем используется для обновления содержимого в браузере.

Вы можете использовать jQuery для таргетинга на определенный элемент. Есть несколько примеров на this question.

-1

Я считаю, что это должен решить вопрос: jQuery Ajax setTimeout JSON

Используйте функцию JavaScript SetTimeout чтобы вызвать функцию Ajax каждые 60 секунд.

Что-то вроде:

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

    $(function() { 
     setTimeout(updateContent, 60000); 
    } 
-2

Я бы прыгнул в SignalR. Звучит интересно.

+0

Я использую SignalR, и мне это нравится, но я думаю, что это может быть излишним использовать его вместо простого, запрограммированного запроса AJAX – harriyott

Смежные вопросы