Asp.net mvc3 периодическое обновление результатов без перезагрузки страницы - PullRequest
2 голосов
/ 28 июля 2011

Я использую asp.net MVC3 для веб-сайта, который отображает в виде результата запроса (управляемого в контроллере) с использованием foreach.

Теперь я хочу автоматически обновить выводзапроса каждый раз, без обновления страницы.

Как я могу это сделать, используя ajax?

Это код вида:

@{
    string firstTime = "";
}
 @foreach( var database in Model)
 {

        if (!(firstTime == database.DB))
        {
          <h3> @database.DB </h3>
        }

           <div class="logContainer" onclick="location.href='/logs/Details?databaseID=@database.DB&exceptionName=@database.Exception&exceptionsOccurred=@database.Count';">
                <div class="counter"><b>@database.Count</b></div> 
                <div class="exceptionName"> Exceptions of Type: @database.Exception</div>
                <div class="date">Siste: @database.LastOccurred</div>
           </div>
       <hr />

     firstTime = database.DB; 
}

Ответы [ 3 ]

5 голосов
/ 28 июля 2011

Вы можете использовать метод javascript window.setInterval для регулярной отправки запросов AJAX на сервер и обновления соответствующей части DOM.Например, если вы хотите обновлять содержимое каждые 10 секунд:

window.setInterval(function() {
    $.post('@Url.Action("someaction", "somecontroller")', function(result) {
        $('#results').html(result);
    });
}, 10 * 1000);

Это отправит запрос AJAX к действию контроллера, который, в свою очередь, может вернуть частичное представление, содержащее обновленные результаты:

pubilc ActionResult SomeAction()
{
    SomeViewModel model = ...
    return PartialView(model);
}

Результат этого частичного представления затем будет вставлен в некоторый элемент DOM с id="results".

2 голосов
/ 28 июля 2011

Вы можете либо передать результат запроса, используя JSON, и визуализировать HTML-код из javascript, либо отделить код for-each для другого частичного представления, а также с помощью метода jQuery $ .ajax изменить div html результата запроса с новым ответом.

0 голосов
/ 28 июля 2011

Почему бы не поместить ваши данные в существующий элемент управления сеткой, такой как DataTables , который является легким, довольно быстрым и расширяемым. Затем, используя таймер JavaScript, скажите таблице данных обновить ее содержимое.

Я использовал это с MVC3 с отличным эффектом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...