2012-01-23 1 views
1

У меня есть частичный вид, который я включил в свой _Layout.cshtml. Он просто имеет функцию javascript, которая изменяет изображение в зависимости от состояния моей системы. Мне не нужно перезагружать какие-либо данные, мне не нужно никуда идти в код контроллера, мне просто нужно перезагрузить это частичное представление.Обновление частичного просмотра в MVC 3

Я пробовал многие из примеров, которые я нашел здесь, но не смог заставить их работать. Мне казалось, что они слишком сложны для того, что я делаю. Любые рекомендации будут оценены.

Спасибо,

Стива

ответ

6

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

Лучше всего сделать частичное использование $.load или любым другим эквивалентом, который у вас есть, нажав на метод контроллера и получив результат в контейнер (например, div). Вы должны сделать это в скрипте, который загружается самой компоновкой, наблюдая document.ready или что-то в этом роде. Если у вас есть это место, то тривиально продолжать перезагружать или обновлять содержимое, нажимая метод контроллера столько раз, сколько вам нужно. К примеру, в JQuery:

$(document).ready(function() { 
    RefreshPartial(); 
    window.setInterval(RefreshPartial, 10000); 
}); 

function RefreshPartial() { 
    $('#container').load('/some/controller/endpoint', {parameters});  
} 

Это будет вызывать метод контроллера, и установить внутреннее содержимое элемента идентифицированного с #container. Вы можете позвонить RefreshPartial столько раз, сколько захотите.

+0

Хорошо, отлично! Это доставило мне большую часть пути. Теперь, как установить ту же самую сделку по таймеру? – SteveInTN

+0

@SteveInTN Я отредактировал обработчик 'document.ready', чтобы показать, как вы вызываете метод обновления каждые 10 секунд. – kprobst

+0

Спасибо, kprobst! – SteveInTN

1

Частичные виды существуют только на сервере. Единственный способ «обновить» частичный - вернуться к серверу, чтобы получить его снова.

Очевидно, что вы должны что-то делать в частичном, нуждающемся в освежении. Что бы это ни было, должно быть вызвано из javascript для обновления.

+0

Довольно значительная переменная, которая меняет значения за кулисами. Все мои частичные потребности - загрузить изображение со значением в качестве источника. Положите это просто. – SteveInTN