Остановить обновление страницы Master при навигации между страницами?

Я использую Ведущее устройство Page в своем приложении ASP.net, на основной странице я поместил ContentPlaceHolder в Панель Обновления для поддержки Ajax на дочерних страницах, вопрос состоит в том, как остановить Обновляющие "основные средства управления страницей" при навигации между страницами?

Для навигации между страницами я пытался использовать Ответ. Перенаправление, windows.location сценарий Java без успеха, я буду использовать Кадры или IFrames вместо Основных Страниц, чтобы прекратить Обновляться?

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

7
задан Wael Dalloul 21 April 2010 в 07:46
поделиться

3 ответа

Если вы не хотите, чтобы страница обновлялась при переключении между «страницами», у вас не будет хорошего решения с использованием главной страницы.Как другие говорили другими словами, главная страница - это просто общий «шаблон», который используется разными страницами. Навигация между ними аналогична вызову разных страниц и, конечно же, перезагружает всю страницу, включая содержимое главной страницы.

  1. Решение, которое я использовал с Ajax, - иметь каждую "страницу" в качестве пользовательских элементов управления и помещать их все в UpdatePanel с visible = "false" . Затем для навигации между "страницами" переключите видимость для пользовательских элементов управления , чтобы отображался правый элемент управления "страница".

  2. Альтернативой является использование iframe.

Ни одно из этих решений не использует MasterPage.

Концепция MasterPage была разработана для упрощения общего вида до того, как Ajax был представлен в ASP.NET. После того, как Ajax стал популярным, требование не обновлять всю страницу стало более распространенным.

5
ответ дан 7 December 2019 в 05:19
поделиться

Мастер-страница - это не что иное, как расширение вашей «обычной» страницы (в большинстве случаев) макетом по умолчанию вашего приложения. Главная страница и заполнители содержимого отображаются как полная страница HTML. Когда вы перемещаетесь между страницами, это нормальное поведение, когда обновляется вся ваша страница. Так работает Интернет.

Работа с iframe может решить вашу проблему. Однако у этого есть и другие побочные эффекты:

  1. Вся мастер-страница больше бесполезна. Контент вашего iframe является "главной страницей".

  2. На главной странице вы фактически переходите к другому URL-адресу, который вы также видите в строке URL-адреса вашего браузера. Когда вы работаете с iframe, вы переходите внутри iframe на другую страницу. URL-адрес в вашем браузере останется прежним. Когда пользователь вашего приложения нажимает кнопку обновления, оно всегда запускается снова на странице по умолчанию, которую вы назначили своему iframe в html. Конечно, есть обходные пути

В любом случае. Это действительно зависит от вашего приложения. Существует несколько решений, позволяющих обойти поведение при обновлении.

2
ответ дан 7 December 2019 в 05:19
поделиться

Имея структуру, подобную той, которую вы объяснили:

  • Мастер
    • Дочерняя страница 1
    • Дочерняя страница 2
    • .. .

Тогда вы не сможете предотвратить обновление страницы при переключении со страницы 1 на страницу 2 и т. Д., Поскольку у вас есть единственная сущность «страницы» (основное содержимое + содержимое выбранной страницы), когда она отображается в браузере.

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

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

1
ответ дан 7 December 2019 в 05:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: