2010-09-10 5 views
1

У меня есть проект ASP.NET MVC 2, который отображает обычные строго типизированные страницы, но на некоторых из этих страниц я также хочу использовать объект страницы для рендеринга определенной области (div) в раздел навигации главной страницы.Обновление главной страницы из окна

Например, если у меня есть Client объект и связанный с сильно типизированных View, я хочу Посмотреть, чтобы иметь возможность вставить специфичные для клиента элементы навигации в пределах DIV в навигации мастер-страницы.

Я на самом деле достиг этого в не очень элегантной моде, создавая ViewData элемента для хранения Client объекта - это в дополнении к возвращению объекта клиента с View. Затем Мастер-страница берет объект ViewData и, если он не является нулевым, отображает раздел навигации по конкретному клиенту. Этот способ делать вещи будет очень уродливым, так как количество различных объектов, которые нужно обрабатывать, увеличивается.

Что я ищу - это метод обновления заполнителя (то есть пустой div) во время навигации по главной странице во время процесса рендеринга страницы. Любые решения C#, VB.NET или jQuery приветствуются.

ответ

0

Почему бы не использовать основную страницу/заполнитель, как вы традиционно могли бы использовать веб-формы? Я не вижу, как использование MVC диктует, что это делается по-другому.

Просмотр Masterpage:

<div id="menu"> 
    <div>Item1</div> 
    <div>Item2</div> 
    <asp:ContentPlaceHolder ID="MenuContent" runat="server" /> 
</div> 

Вид:

<asp:Content ID="Content1" ContentPlaceHolderID="MenuContent" runat="server"> 
    <%=Html.RenderAdditionalMenuItemsSomehow(Model) %> 
</asp:Content> 
+0

Большое предложение (для которого я был DOH момент!), И он прекрасно работает, когда у меня есть объект клиента доступен. Однако выяснилось, что некоторые элементы, которые мне нужно отобразить для клиента, не будут включать в себя клиентский объект, поэтому теперь я рассматриваю тестирование ViewContext.Controller в коде главной страницы, чтобы узнать, относится ли это тип ClientController и действуя по этому поводу. – CrispinH

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