Обновлять только панель контента на главной странице при навигации по страницам в asp.net mvc - PullRequest
2 голосов
/ 22 октября 2009

В моем приложении asp.net mvc (C #) есть главная страница с панелями «Заголовок», «Меню», «Содержимое» и «Нижний колонтитул».

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

Как мне добиться этого в приложении asp.net mvc? любые предложения

Ответы [ 2 ]

2 голосов
/ 22 октября 2009

Чистая загрузка ajax изнутри страниц может быть достигнута путем захвата щелчков по ссылкам в навигации на что-то вроде:

$('a:not(.external)').each(function(){
  $(this).attr('href', '#'+this.href);
});

Тогда вы можете использовать плагин jQuery BBQ для управления кнопкой возврата и загрузкой страниц с помощью события onHashChange . Это позволит вам ajax загрузить каждую из основных частей страницы (вероятно, при вызове типа $('#main-div').load(url);). Демонстрация для барбекю делает в точности то, что вам нужно, с дополнительным преимуществом, заключающимся в том, что вы не портите кнопку «назад», поэтому я бы посоветовал внимательно посмотреть на это.

0 голосов
/ 22 октября 2009

Выполните вызовы Ajax к контроллеру, как показано ниже, и создайте необходимый вам PartialView "* .ascx"

    $('#divMainContent').load("./LoadMainContent");



    [Authorize]
    public ActionResult LoadMainContent()
    {
        return PartialView("MainContent", sp);

    }
...